Получить ресурсы агента/библиотеки

  • Автор темы Mady
  • Дата начала
M

Mady

Вопрос где на сервере находятся ресурсы?, которые были прикреплены в java агенте Lotus Domino 8.5.2
Lotus domnino designer 8.5.2
 
M

Mady

я прикручиваю конфиг файл хочу считать его. причем когда я обращаюсь локально те агент запускается НЕ на сервере все нормально работает, иначе говорит что не могу найти файл. как к нему достучаться.....
 
M

Mady

В Java Агенте есть возможность
меню Import -> Resource. там выбираю xml файл потом когда запускаю агент на сервере он говорит что не может найти файл. а локально все работает!
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 985
611
BIT
471
а обращаетесь к нему как?
 
T

turumbay

он говорит что не может найти файл.
он наверняка говорит не это, а бросает исключение. вот бы его увидеть. полностью. весь стектрейс.
Предположу, что проблема в следующем: у агентов есть небольшая заморочка, из-за которой ресурсы не очень попадают в classpath. Попробуйте получить ресурс явно:
InputStream in = getClass().getClassLoader().getResourceAsStream("log4j.properties");
 
M

Mady

а обращаетесь к нему как?

Если локально то просто указываю
...
...new Configuration().configure()("xml");
те путь как бы он знает это локально а на сервере стек трейс такой

22.04.2011 15:49:06 Agent error: java.lang.ExceptionInInitializerError
22.04.2011 15:49:06 Agent error: at java.lang.J9VMInternals.initialize(J9VMInternals.java:222)
22.04.2011 15:49:06 Agent error: at JavaAgent.NotesMain(Unknown Source)
22.04.2011 15:49:06 Agent error: at lotus.domino.AgentBase.runNotes(Unknown Source)
22.04.2011 15:49:06 Agent error: at lotus.domino.NotesThread.run(Unknown Source)
22.04.2011 15:49:06 Agent error: Caused by:
22.04.2011 15:49:06 Agent error: org.hibernate.HibernateException: Could not parse configuration: /hibernate.cfg.xml
22.04.2011 15:49:06 Agent error: at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1500)
22.04.2011 15:49:06 Agent error: at org.hibernate.cfg.Configuration.configure(Configuration.java:1434)
22.04.2011 15:49:06 Agent error: at org.hibernate.cfg.Configuration.configure(Configuration.java:1420)
22.04.2011 15:49:06 Agent error: at HibernateFactory.<clinit>(Unknown Source)
22.04.2011 15:49:06 Agent error: at java.lang.J9VMInternals.initializeImpl(Native Method)
22.04.2011 15:49:06 Agent error: at java.lang.J9VMInternals.initialize(J9VMInternals.java:200)
22.04.2011 15:49:06 Agent error: ... 3 more
22.04.2011 15:49:06 Agent error: Caused by:
22.04.2011 15:49:06 Agent error: org.dom4j.DocumentException: Can't find resource for bundle java.util.PropertyResourceBundle, key connect_not_allowed Nested exception: Can't find resource for bundle java.util.PropertyResourceBundle, key connect_not_allowed
22.04.2011 15:49:06 Agent error: at org.dom4j.io.SAXReader.read(SAXReader.java:484)
22.04.2011 15:49:06 Agent error: at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1490)
22.04.2011 15:49:06 Agent error: ... 8 more
 
M

Mady

Попробуйте явно указать url:
Код:
URL url = getClass().getClassLoader().getResource("конфиг.xml");
configuration().configure(url);

//.....
URL url = getClass().getClassLoader().getResource("hibernate.cfg.xml");
System.out.println("url="+url);
//.....

результат:
url=null

Добавлено: причем результат выполнения на сервере и локально один и тот же
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 985
611
BIT
471
в путях ресурсов он лежит в к-л каталоге?
 
M

Mady

в путях ресурсов он лежит в к-л каталоге?

Примерно так.
skrin.png
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 985
611
BIT
471
гадать сложно нужно понять как из проекта размещаются ресурсы...
например - экспортнуть проект и посмотреть
 
T

turumbay

URL url = getClass().getClassLoader().getResource("hibernate.cfg.xml");
System.out.println("url="+url);
результат:
url=null
Код:
public class JavaAgent extends AgentBase {

public void NotesMain() {

try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Reader reader = new InputStreamReader(this.getClass().getClassLoader().getResourceAsStream("test.html"));
BufferedReader br = new BufferedReader(reader);
String line = null;
while (( line = br.readLine() )!=null) {
System.out.println( line );
}
} catch(Exception e) {
e.printStackTrace();
}
}
}
Нормально работает на клиенте и на сервере.
в аттаче скрин с агента в DDE и выхлоп серверной консоли.
Т.о. ресурсы из агента нормально подтягиваются класслоадером агента. В конфигурации, приведенной на вашей link removed все должно работать.

Проблемы начнут возникать, когда к ресурсу попытается класс, загруженный класслоадером, находящимся выше в иерархии, чем AgentLoader: т.е., например, если вы положите HibernatеFactory в lib/ext и будете пытаться из него получить доступ к ресурсам агента...

P.S. А зачем вам hibernate понадобился внутре domino, если не секрет?
Я буквально сегодня . Чисто в академических целях. Практического применения этому знанию пока не вижу...
 

Вложения

  • mady.dde.ss.PNG
    mady.dde.ss.PNG
    3,6 КБ · Просмотры: 731
  • mady.server.console.png
    mady.server.console.png
    10,2 КБ · Просмотры: 650
M

Mady

Не секрет, просто интересно....

Добавлено: Большое спасибо за пример и за линк
 
Z

zum

Собственно как выгрузить
Заимпортированный файлик в "Res" библиотеки.
Точнее как его найти?)

так не получаетя
InputStream is = getClass().getClassLoader().getResourceAsStream(nameResFile);
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
Res - это ресурсы?
А почему бы не добавить в Script?
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!