Работа С Java-классами В Лотусовом Агенте

HelenHelen

Well-known member
31.08.2011
74
0
#1
Всем доброго времени суток!

Прошу прощения за нубский вопрос, но не смогла найти на форуме ничего, что бы мне помогло, поэтому обращаюсь за помощью...

Хочу в лотусе запустить агента на java с использованием swing. На яве код запускается и работает без ошибок. В package несколько классов, это нужно для логики работы. Создала такие классы в лотусовом джава-агенте. Когда в одном классе создается экземпляр другого, говорит Can't resolve to a type - ну то есть не видит класс. Хотя все они в одном пакете (default package) и модификатор доступа у всех public... Подскажите, в чем причина этой проблемы?
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 601
277
#2
класс может вызываться по имени пакеджа, а у вас он другой
просто сделать в агенте пакедж (такой же как и был) - попросту вставить строку с названием пакеджа и пересохраниться перезайти в агент
 

HelenHelen

Well-known member
31.08.2011
74
0
#3
Imike, спасибо большое! Сделала импорт исходников вместе с тем пекеджем, где все было, и тогда import /этот пакет/.* - и все работает. В дефолте остается только JavaAgent. Сейчас заморачиваюсь с интерфейсной мультитредовостью...
 

HelenHelen

Well-known member
31.08.2011
74
0
#4
Если можно, еще такой вопрос: как в лотусе работать с потоком swing-UI? У джава-агента в лотусе обязательно точка входа - это NotesMain. Если я оттуда вызываю класс с формочками, то получаю ответ, что не имею права обращаться к AWT-потоку, т.е. к интерфейсному:

Exception in thread "AWT-EventQueue-0" java.security.AccessControlException: Access denied (java.lang.RuntimePermission exitVM.0) и т.д.....

При запуске в IDE среда автоматически ставит точку входа в класс с графикой, и все нормально работает. Как обойти это в лотусе?
 

garrick

Lotus team
26.10.2009
911
61
#5
Могу предположить, что у вас где-то используется System.exit(), которое запрещено настройками безопасности Java лотуса. См. настройки %LOTUS_DIR%/jvm/lib/security/java.policy. Можно исправить настройки в этом файле, но это придётся делать на каждом клиенте, где будет запускаться ваш агент. Либо что-то исправить в коде, что бы он вписывался в установленную IBM политику безопасности.
 

HelenHelen

Well-known member
31.08.2011
74
0
#6
garrick, спасибо, да, дело было в этой строчке:

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

В Лотусе так низя) А все остальное, соответственно, корректно работает и проблем с потоками нет (если они были бы, наверное, эксепшены сыпались бы и при запуске за рамками Лотуса)