• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

Xdocreport - inputstream cannot be null

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 941
609
BIT
215
Как ни странно помогло
совершенно не странно, ИБМ жвм работает, в контексте агентов, совсем не так - как ожидают разработчики нек. классов
например классы предполагающие синглтоны и работу с некими ресурсам
агент их просто постарается выгрузить, вполне возможно - не освободятся ресурсы
да и класслоадер работает с финтами от ИБМ
статики будут инициализироваться не при старте жвм, а при загрузке агента
вопщем - либы желательно класть в ФС (возможно и через - но тему нужно педалить, я не удосужился)
 
Последнее редактирование модератором:

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 941
609
BIT
215
гонял либу давно (уж год прошел), но всегда выкладывал в lib/ext
 

dimat

Well-known member
31.07.2008
508
0
BIT
0
А в pdf то все таки корявенько конвертит(
офтоп: как сейчас репутацию участнику плюсануть?
 

garrick

Lotus Team
26.10.2009
1 351
151
BIT
188
В целом хочу заметить про формирование PDF из Lotus Notes. Путём долгих проб для себя нашел два наиболее приемлемых варианта:
  1. Apache FOP - ему надо на вход подать FO файл, который можно сделать из XLST шаблона. Но я для меня более приемлемым оказался вариант подготовки уже FO файла в формате шаблона Apache Velocity. Пропуская его через Velocity, наполняю необходимыми данными и получаю FO, готовый для преобразования в PDF через FOP. Изначально заготовку FO файла можно сделать с помощью AbiWord, но всё равно окончательную красоту придётся наводить руками.
  2. принимает на вход XHTML файл (фактически просто HTML) и выдаёт PDF. Таблицы, абзацы легко набить руками хоть в notepad, а в Eclipse вообще само всё набивается - HTML не такой сложный как FO. Точно так же заготовку заполняю данными через Apache Velocity.

... и ещё иногда бывает нужно сформировать какой-то документ с уже заполненными данными, но не делать из него PDF, а дать подредактировать пользователю. В этом случае делаю RTF шаблон с полями, в значения полей заношу переменные для Velocity, которая потом подставит туда нужные значения. Обработанный Velocity файл открываю в редакторе у пользователя на рабочем месте.
 
P

proteam

Люди, а у меня следующая ерунда.
Есть библиотека на java, туда подключен jar файл и реализован свой класс.
Подключаю этот класс в форме в кнопке на LS, все идеально работает. Тот же самый код, который добавил в кнопку формы копирую в агент LS и тут ошибка:

Код:
java.lang.IllegalArgumentException: InputStream cannot be null
at javax.xml.parsers.DocumentBuilder.parse(Unknown Source)
at org.apache.xml.security.Init.init(Unknown Source)
at kz.gov.pki.knca.applet.utils.XmlUtil.loadXMLSecurity(XmlUtil.java:42)

Декомпильнул jar файл, стал искать где это могло произойти. И тут вот такой код
Java:
DocumentBuilder localDocumentBuilder = localDocumentBuilderFactory.newDocumentBuilder();
	  InputStream localInputStream = (InputStream)AccessController.doPrivileged(new PrivilegedAction()
	  {
		public Object run()
		{
		  String str = System.getProperty("org.apache.xml.security.resource.config");
		  return getClass().getResourceAsStream(str != null ? str : "resource/config.xml");
		}
	  });
	  Document localDocument = localDocumentBuilder.parse(localInputStream);
больше нигде нет использования метода parse()

Что за ерунда? Тот же самый код в кнопке на форме же работает, а в агенте не хочет? Может какие то права нужно прописать?
 

dimat

Well-known member
31.07.2008
508
0
BIT
0
В целом хочу заметить про формирование PDF из Lotus Notes. Путём долгих проб для себя нашел два наиболее приемлемых варианта:
Apache FOP - ему надо на вход подать FO файл, который можно сделать из XLST шаблона. Но я для меня более приемлемым оказался вариант подготовки уже FO файла в формате шаблона Apache Velocity. Пропуская его через Velocity, наполняю необходимыми данными и получаю FO, готовый для преобразования в PDF через FOP. Изначально заготовку FO файла можно сделать с помощью AbiWord, но всё равно окончательную красоту придётся наводить руками.
flying-saucer - принимает на вход XHTML файл (фактически просто HTML) и выдаёт PDF. Таблицы, абзацы легко набить руками хоть в notepad, а в Eclipse вообще само всё набивается - HTML не такой сложный как FO. Точно так же заготовку заполняю данными через Apache Velocity.

... и ещё иногда бывает нужно сформировать какой-то документ с уже заполненными данными, но не делать из него PDF, а дать подредактировать пользователю. В этом случае делаю RTF шаблон с полями, в значения полей заношу переменные для Velocity, которая потом подставит туда нужные значения. Обработанный Velocity файл открываю в редакторе у пользователя на рабочем месте.
У меня задача такая: формировать на основе вордовского шаблона договор, после этого конвертить его во что нибудь не редактируемое(pdf, картинка и т.д.), вот я и выбрал xdocreport.
а в Eclipse вообще само всё набивается
Можешь пояснить, что значит само все набивается?
 
Последнее редактирование модератором:

garrick

Lotus Team
26.10.2009
1 351
151
BIT
188
Можешь пояснить, что значит само все набивается?
Оно знает HTML теги и при открытии тега, например <p> автоматически подставляет "закрытие" </p>, подсвечивает синтаксис, форматирует, ну и следит за корректностью текста. Вообще-то там ещё и визуальный редактор HTML страниц есть, но я им не пользуюсь. А с вордовскими шаблонами беда - постоянно что-то где-то "расползается".
 

garrick

Lotus Team
26.10.2009
1 351
151
BIT
188
Могу ещё дать наводку, но следует знать, что хоть и есть возможность скачать и использовать это "бесплатно" - эта штука очень дорогая, если, конечно, вы уже не располагаете какой-нибудь супер-пуппер Oracle интерпрайз лицензией.
- там на странице есть ссылки на 32-х и 64-х битные версии.
 

dimat

Well-known member
31.07.2008
508
0
BIT
0
@garrick, Спасибо за инфу! пока это помучаю.

Попробовал вставить список:
Java:
List<Developer> developers = new ArrayList<Developer>();
		developers
				.add(new Developer("ZERR", "Angelo", "angelo.zerr@gmail.com"));
		developers.add(new Developer("Leclercq", "Pascal",
				"pascal.leclercq@gmail.com"));
		context.put("developers", developers);

На строке
Java:
List<Developer> developers = new ArrayList<Developer>();
пишет Unresolved compilation problem: Syntax error, parameterized types are only available if source level is 1.5
Хотя у сервера 8,5,3 вроде версия java 1.6, или я что то путаю?
 

oshmianski

Достойный программист
Lotus Team
25.04.2012
711
59
BIT
2
source level (версия классов) и версия java (JVM) - это разные вещи.
смотрите в настройках java\compiler. возможно нужно предварительно очистить проект.
а возможно придется вообще отказаться от параметризации типов, у меня так и не получилось заставить их работать.
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 941
609
BIT
215
оно близко к JVM, но не одно и тоже ;)
этот параметр выставляется в проекте (св-вах)
чтобы не задолбатся на фокусы из индусских рук - проще собрать проект, в бинарник, на "чистой" ИДЕ
а результат подсунуть в проект (jar/class)
 

dimat

Well-known member
31.07.2008
508
0
BIT
0
чтобы не задолбатся на фокусы из индусских рук - проще собрать проект, в бинарник, на "чистой" ИДЕ
а результат подсунуть в проект (jar/class)

то есть в eclipse, например, подключить notes.jar и джарники xdocreport, описать свой класс, на вход которого подается например notesdocument, внутри него формируется отчет, после этого экспортнуть проект в jar и подключить к агенту?

Еще вопрос: Написал агента на java с использованием xdocreport, запускаю на сервере tell amgr run "db" 'agent' - работает, настраиваю запуск по расписанию - работает, запускаю c клиента NotesAgent.RunOnServer() - не работает:

Agent error: Exception in thread "Launcher: JavaAgent"
Agent error: java.lang.NoClassDefFoundError: fr.opensagres.xdocreport.core.XDocReportException
Agent error: at java.lang.J9VMInternals.verifyImpl(Native Method)
Agent error: at java.lang.J9VMInternals.verify(J9VMInternals.java:72)
Agent error: at java.lang.J9VMInternals.initialize(J9VMInternals.java:134)
Agent error: at java.lang.J9VMInternals.newInstanceImpl(Native Method)
Agent error: at java.lang.Class.newInstance(Class.java:1345)
Agent error: at lotus.domino.AgentInfo.newInstance(Unknown Source)
Agent error: at lotus.domino.AgentLauncher.run(Unknown Source)
Agent error: at lotus.domino.NotesThread.run(Unknown Source)
Agent error: Caused by:
Agent error: java.lang.ClassNotFoundException: fr.opensagres.xdocreport.core.XDocReportException
Agent error: at java.lang.ClassNotFoundException.<init>(ClassNotFoundException.java:76)
Agent error: at lotus.domino.AgentLoader.loadClass(Unknown Source)
Agent error: at java.lang.ClassLoader.loadClass(ClassLoader.java:619)
Agent error: ... 8 more
 
Мы в соцсетях:

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