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

Тема в разделе "Lotus + Java + LS2J", создана пользователем HelenHelen, 23 дек 2013.

  1. HelenHelen

    HelenHelen Well-Known Member

    Регистрация:
    31 авг 2011
    Сообщения:
    75
    Симпатии:
    0
    Всем доброго времени суток!

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

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

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    класс может вызываться по имени пакеджа, а у вас он другой
    просто сделать в агенте пакедж (такой же как и был) - попросту вставить строку с названием пакеджа и пересохраниться перезайти в агент
     
  3. HelenHelen

    HelenHelen Well-Known Member

    Регистрация:
    31 авг 2011
    Сообщения:
    75
    Симпатии:
    0
    Imike, спасибо большое! Сделала импорт исходников вместе с тем пекеджем, где все было, и тогда import /этот пакет/.* - и все работает. В дефолте остается только JavaAgent. Сейчас заморачиваюсь с интерфейсной мультитредовостью...
     
  4. HelenHelen

    HelenHelen Well-Known Member

    Регистрация:
    31 авг 2011
    Сообщения:
    75
    Симпатии:
    0
    Если можно, еще такой вопрос: как в лотусе работать с потоком swing-UI? У джава-агента в лотусе обязательно точка входа - это NotesMain. Если я оттуда вызываю класс с формочками, то получаю ответ, что не имею права обращаться к AWT-потоку, т.е. к интерфейсному:

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

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

    garrick Lotus team
    Lotus team

    Регистрация:
    26 окт 2009
    Сообщения:
    770
    Симпатии:
    50
    Могу предположить, что у вас где-то используется System.exit(), которое запрещено настройками безопасности Java лотуса. См. настройки %LOTUS_DIR%/jvm/lib/security/java.policy. Можно исправить настройки в этом файле, но это придётся делать на каждом клиенте, где будет запускаться ваш агент. Либо что-то исправить в коде, что бы он вписывался в установленную IBM политику безопасности.
     
  6. HelenHelen

    HelenHelen Well-Known Member

    Регистрация:
    31 авг 2011
    Сообщения:
    75
    Симпатии:
    0
    garrick, спасибо, да, дело было в этой строчке:

    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

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

Поделиться этой страницей