Jar, агент

H

hardegor

хм... добавил jar jvm/lib/ext
В дизайнере появились мои классы...

Дизайнер 7.0.3 rus, добавил jar в jvm/lib/ext , но что-то не нашел где в дизайнере появятся мои классы?
Подскажите, в хелпе не нашел :eek:fftop:
Если только в закладке "Списки"? Но там тоже нету...
 

vincent_vega

Green Team
02.04.2005
169
1
BIT
0
Дизайнер 7.0.3 rus, добавил jar в jvm/lib/ext , но что-то не нашел где в дизайнере появятся мои классы?
Подскажите, в хелпе не нашел :(
Если только в закладке "Списки"? Но там тоже нету...

Они есть:) но вы их не увидите, потому что в 7 версии очень скудный редактор java. Только при компиляции он вам скажет что нет такого класса или метода. Пользуйтесь 8.5 дизайнером, там java код писать по приятней.
 
H

hardegor

Понятно, спасибо! Но клиенты и сервер 7.0.3, поэтому будем "жрать кактус" :(, т.е. читать исходники.
Кому интересно, "реализую мечту идиота" :) - сканирование по сети.
Использую SANE, нашел подходящую free библиотеку JSane
Посмотрел на дизайнер Lotus, и подумал что можно импортировать эти либы прямо в исходниках в базу.
Непонятно насколько практично это решение или лучше всё-таки их в /jvm ложить компилёными?
p.s. всегда писал на LS, яву никогда не использовал....
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 983
611
BIT
453
код выше =)
просто там флаг добавлен чтоб кучу раз сессию не делать

А так на каждое действие юзера сессию пробует подниматься поднимается... но это не удобно очень и как-то ваще изврат...
например такое событие весит на чендж комбобокса
Токо вот хренатень
событие срабатывает когды в комбобокс данные добавляешь
а в этот момент еще старая сессия есть и виснет

дак как там ее насильственно убить?
ничего не понял...
как бы сделал я:
-передал док или БД (юниды) в класс (после чего агент закрылся) - но сам класс остался (свинговый)
-класс открыл сессию (один раз)
-рулим кнопками и т.п.

выше только часть кода - нет класса джавы и контролов...
 
Z

zum

Лана не получилось у меня убить родную сессию
"-класс открыл сессию (один раз)" этот момент открытия поймать просто надо.
Потому мучаемся все также)

Однако товарисчи появилась еще одна интресная проблемка =)
Вот задумал я сделать котроль версий...
Написал библиотеку, которая проверяет текущую версию с приаттаченой к документу...
все понятно если версия в документе выше, то должна заменять.

Но тут такая штука... когда запускается любой java-агент все библиотеки блочатся
Я думал что когда юзаешь "import" то блочится токо то, что импортишь, ан нет все jar`ы в "ext"...
Как же быть?
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 983
611
BIT
453
у тредов (нормальных) есть ф-ция join - она ждет завершения треда...
<!--shcode--><pre><code class='java'>Thread reader = new Thread(new TelnetClientExample());
tc.registerNotifHandler(new TelnetClientExample());
reader.start();
....
reader.join()[/CODE]
у AgentBase есть currentThread()
а дальше - по аналогии, передаем этот параметр в свой класс и делаем джоин, или пробуем убить

по классам
можно "играться" с класспаз - но я не пробовал, может в Нотусах не пролезть


можно играться в прописыванием путей в ини (параметры путей жвм - а не использовать ext)
 
Z

zum

если я правильно идею понял то
Вынес во внешнюю папку... через notes.ini
результат тотже =(
незя удалить, и перезаписать:
<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">NotesException: Ошибка Notes: Файл занят другой программой (C:\java\Tlist.jar)</div></div><div class="sp-body"><div class="sp-content"> at lotus.domino.local.EmbeddedObject.NextractFile(Native Method)
at lotus.domino.local.EmbeddedObject.extractFile(Unknown Source)
at Update.updateAgent.checkUpdate(updateAgent.java:69)
at JavaAgent.NotesMain(JavaAgent.java:32)
at lotus.domino.AgentBase.runNotes(Unknown Source)
at lotus.domino.NotesThread.run(Unknown Source)те походу средствами java это не сделать (сама себя не может удалить)

А как в Лотус скрипте узнать каталог клиента?
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 983
611
BIT
453
пробуйте с подстановкой класспаза
притом - байда с локированием файл - чисто виндузёвая заморочка...
вокэраунд - переименование файла (старого), может прокатить
и последнее - можно плюнуть на детач из Нотусей и сделать через ДХЛ...
я выкладывал LAX (на Интертрасте), возможно, что сама жвм - забьет на Виндово-Нотусовые экзерцизы
 
Z

zum

С подстановкой?А примером можно?)
Мне так туго догнать или ссылкой пошлите в нужную сторону...
Что есть LAX? XML editor ?)
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 983
611
BIT
453
С подстановкой?А примером можно?)
Мне так туго догнать или ссылкой пошлите в нужную сторону...
Что есть LAX? XML editor ?)
подстановка - мой предыдущий пост - там ссылка

дергалки файлов (ссылка со стрингом поиска)

для полноты картины:
 
Z

zum

подстановка не работает
незя:
"java.security.AccessControlException: Access denied (java.lang.RuntimePermission getClassLoader)"

Было сделано через, оные пути...
сначала лотусовый агент обновляет и просит перезапустить, или если обновлять не надо пускал java агента
(так можно было поменять jar до того как клиент их заблокирует)
работало но не долго... странная штука, терь библиотеки заблочены всегда (окромя вырубленного клиента)

что их блокирует разобраться не получилось...
дергалки файлов (ссылка со стрингом поиска)

для полноты картины:
Это сработает? есть смысл пробовать? Неужто ДХЛ может заблоченные файлы переписать?
 

Вложения

  • ______________________.jpg
    ______________________.jpg
    23,9 КБ · Просмотры: 731

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 983
611
BIT
453
файлы блочатся разными способами и вероятность доступа на контент - есть
этот код не использует нотусёвые библы для вывода файла

может юзается LS2J в библиотеках? - потому лочатся файлы

про секурити - попробывать поиграться с секуритями jvm, ежели пролезет - всем файло перезалить (секуритей)
хотя это и "дырочка" , но в контексте задач - может быть и не критичная

можно проверить атрибуты файла - может нет прав у юзера или файлы RO
 
Z

zum

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

файлы блочатся разными способами и вероятность доступа на контент - есть
этот код не использует нотусёвые библы для вывода файла
мой тоже не использовал потому и работал...

Потому подумал и решил заранее выгружать файлы jar`овские
запускать внешнее приложение через shell пусть ждет пока файлы освободятся и перезаливает их новыми
правда потребуется дополнительная установка jvm комп, но это не критично

как думаете проблемы будут?
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 983
611
BIT
453
проблем не будет, но прога должна висеть в памяти и грузится кем либо
jvm нет необходимости устанавливать - это не .НЕТ :KillMe:
хоть с СиДи можно запускать
 
N

nvyush

как? вот у меня есть комп там токо лотусовый клиент и все...

пишу "java -jar 1.jar" и ничего....
Насколько я понял, Imike имел ввиду, что её достаточно скопировать и прописать пути. В реестре винды она ничего не пишет, соответственно, никакого инсталлятора запускать не нужно.
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 983
611
BIT
453
можно даже не писать в общие пути...
достаточно определить инвайромент при запуске
можно оформить (а чаще всего так и делают) в виде пакетного скрипта (в видоуз наз. .cmd)

если по-любому есть необходимость в jvm (внешней) - её можно присоеденить к базе (jre) детачить на диск и пушать пакетным файлом
можно сделать сокращенную сборку jre (т.к. не все классы нужны при запуске простых приложений)
все эти варианты знает гугл

есть вот така шняжка (платная)
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 983
611
BIT
453
в линухах и маке - .sh файл, но надо выставить атрибут запуска
 
Мы в соцсетях:

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