• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Lotus Jvm

  • Автор темы Azrael
  • Дата начала
A

Azrael

Какая версия JVM в 7-ом Lotus'е?
Опытным путем установлено, что в 6.5.3 сторонние *.jar файлы нужно компилировать под "Java 2 SDK, v.1.3 and later".
При этом возникла проблема: в notes\jvm\lib\rt.jar в классе java.lang.StringBuffer нет метода append (точнее нужной реализации) :(
Затыкается на строчке:
Код:
off.append(' ').append(gen).append(generation == 65535 ? " f \n" : " n \n");

В rt.jar все реализации append возвращают null.

P.S. В консоли получил вот что:
java.lang.NoSuchMethodError: java.lang.StringBuffer: method append(Ljava/lang/StringBuffer;)Ljava/lang/StringBuffer; not found
at com.lowagie.text.pdf.PdfWriter$PdfBody$PdfCrossReference.toPdf(PdfWriter.java:191)
at com.lowagie.text.pdf.PdfWriter$PdfBody.writeCrossReferenceTable(PdfWriter.java:504)
at com.lowagie.text.pdf.PdfWriter.close(PdfWriter.java:1162)
at com.lowagie.text.pdf.PdfDocument.close(PdfDocument.java:805)
at com.lowagie.text.Document.close(Document.java:497)
at JavaAgent.NotesMain(JavaAgent.java:37)
at lotus.domino.AgentBase.runNotes(Unknown Source)
at lotus.domino.NotesThread.run(NotesThread.java:218)
 
Y

Yakov

Azrael, скажите, пожалуйста, каков тип переменной gen?
Метод public StringBuffer append(StringBuffer sb), упомянутый в трассировке стека ошибок, согласно документации, появился с версии 1.4.
 
A

Azrael

Azrael, скажите, пожалуйста, каков тип переменной gen?

StringBuffer. Есть подозрение, что Lotus использует собственный JVM, причем непонятно какой версии (по крайней мере, версия 6.5.4 c Java 2 SDK, v.1.4 работать отказывается). Поэтому и интересуюсь, какая версия в 7ке
 
Y

Yakov

Конечно, Lotus использует свою jvm, которая находится в каталоге %LotusPath%\jvm, где %LotusPath% - каталог, в который установлен Lotus. Узнать версию можно так: %LotusPath%\jvm\bin\java -version.
Lotus 6.5 имеет jvm версии 1.3.1, Lotus 7.0 - jvm 1.4.2. В %LotusPath%\jvm\lib\core.jar семерки точно есть требуемый метод класса StringBuffer.
 
S

sanch

Советую скомпилить класс и запустить его через шелл из lscript (личный опыт).
 
A

Azrael

Для: Yakov Спасибо, разобрался! Поставил 7-ку, заработало.
Для: sanch Можно подробнее? Всмысле полностью написать функционал в классе на java (с использованием i-text) и запускать его из LS? А как реализовывать работу с БД Lotus?
 
K

Kee_Keekkenen

у меня тоже не получалось прицеплять jar или class к лотусу, что-то не так делал, потому что можно..
поэтому использовал связку LS2J, т.е. создавал java библиотеку, LS библиотеку(интерфейс для java) и агента, который использовал ls-библ для доступа к java-библ ...
 
A

Azrael

У меня в 7-ом лотусе получилось нормально (все делал как в хелпе описано). Запихал jar-файл в java-библиотеку, в java-агенте ее использовал.
 
Мы в соцсетях:

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