Форум программистов, компьютерный форум, киберфорум
HCL Notes: Программирование
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.52/115: Рейтинг темы: голосов - 115, средняя оценка - 4.52
0 / 0 / 0
Регистрация: 17.10.2008
Сообщений: 506

Xdocreport - inputstream cannot be null

14.09.2015, 07:32. Показов 24611. Ответов 46
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!
Кто нибудь юзал данную библиотеку? подскажите, что не так делаю?

Создал агента подключил все jar, в агенте открыл пример DocxProjectWithVelocity, запускаю и в java debug console вижу данную ошибку.


Code
1
2
3
4
5
6
7
8
9
Agent Manager: Agent error: java.io.IOException: InputStream cannot be null.
Agent Manager: Agent error: at fr.opensagres.xdocreport.core.io.XDocArchive.readZip(XDocArchive.java:289)
Agent Manager: Agent error: at fr.opensagres.xdocreport.document.registry.XDocReportRegistry.createReport(XDocReportRegistry.java:359)
Agent Manager: Agent error: at fr.opensagres.xdocreport.document.registry.XDocReportRegistry.loadReport(XDocReportRegistry.java:326)
Agent Manager: Agent error: at fr.opensagres.xdocreport.document.registry.XDocReportRegistry.loadReport(XDocReportRegistry.java:317)
Agent Manager: Agent error: at fr.opensagres.xdocreport.document.registry.XDocReportRegistry.loadReport(XDocReportRegistry.java:302)
Agent Manager: Agent error: at DocxProjectWithVelocity.NotesMain(Unknown Source)
Agent Manager: Agent error: at lotus.domino.AgentBase.runNotes(Unknown Source)
Agent Manager: Agent error: at lotus.domino.NotesThread.run(Unknown Source)

.SpoilerTarget">Спойлер: Код


Код (Java):
import lotus.domino.*;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import fr.opensagres.xdocreport.core.XDocReport Exception;
import fr.opensagres.xdocreport.document.IXDocR eport;
import fr.opensagres.xdocreport.document.regist ry.XDocReportRegistry;
import fr.opensagres.xdocreport.samples.docxand velocity.model.Project;
import fr.opensagres.xdocreport.template.IConte xt;
import fr.opensagres.xdocreport.template.Templa teEngineKind;

public class DocxProjectWithVelocity extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();

try {
InputStream[/URL] in = DocxProjectWithVelocity.class.getResourc eAsStream("d:/docxandvelocity/DocxProjectWithVelocity.docx");
IXDocReport report = XDocReportRegistry.getRegistry().loadRep ort(in,TemplateEngineKind.Velocity);

// 2) Create context Java model
IContext context = report.createContext();
Project project = new Project("XDocReport");
context.put("project", project);

// 3) Generate report by merging Java model with the Docx
OutputStream[/URL] out = new FileOutputStream[/URL](new File[/URL]("d:\\docxandvelocity\\DocxProjectWithVe locity_Out.docx"));
report.process(context, out);
} catch (IOException[/URL] e) {
e.printStackTrace();
} catch (XDocReportException e) {
e.printStackTrace();
}
} catch(Exception[/URL] e) {
e.printStackTrace();
}
}
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.09.2015, 07:32
Ответы с готовыми решениями:

xdocreport
решил вынести в отдельную тему... во-первых - помним про второй момент - если хочется тестить "в БД", т.е. загрузить файлы...

Блин, для ЧЕГО НУЖНА Функция CREATE TABLE invoice( inv_id INT AUTO_INCREMENT NOT NULL , usr_id INT NOT NULL , prod_id INT NOT NULL , quantity INT NOT
Погуглив, так и не смог толком понять. Есть тут ГУРУ по mysql Которые могут на пальцах или на примере показать для чего она нужна. ...

InputStream exceptions
Дано: серверный чат на TCP сокетах. Есть DataInputStream, который принимает в себя InputStream из сокета. Создаю юнит тест, делаю мок...

46
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
14.09.2015, 18:10
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от dymat
Как ни странно помогло
совершенно не странно, ИБМ жвм работает, в контексте агентов, совсем не так - как ожидают разработчики нек. классов
например классы предполагающие синглтоны и работу с некими ресурсам
агент их просто постарается выгрузить, вполне возможно - не освободятся ресурсы
да и класслоадер работает с финтами от ИБМ
статики будут инициализироваться не при старте жвм, а при загрузке агента
вопщем - либы желательно класть в ФС (возможно и через expeditor - но тему нужно педалить, я не удосужился)
0
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
14.09.2015, 18:27
гонял либу давно (уж год прошел), но всегда выкладывал в lib/ext
0
0 / 0 / 0
Регистрация: 17.10.2008
Сообщений: 506
15.09.2015, 11:29
А в pdf то все таки корявенько конвертит(
офтоп: как сейчас репутацию участнику плюсануть?
0
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
15.09.2015, 15:25
Цитата Сообщение от dymat
офтоп: как сейчас репутацию участнику плюсануть?
кнопка Репутация - в числе кнопок под самим постом
0
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
15.09.2015, 16:19
Цитата Сообщение от dymat
А в pdf то все таки корявенько конвертит(
в ПДФ оно конвертит с огрехами из-за стилей ворда, я об это говорил про ФОП
0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 812
15.09.2015, 16:34
В целом хочу заметить про формирование 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 файл открываю в редакторе у пользователя на рабочем месте.
0
0 / 0 / 0
Регистрация: 27.02.2012
Сообщений: 143
22.09.2015, 14:40
Люди, а у меня следующая ерунда.
Есть библиотека на java, туда подключен jar файл и реализован свой класс.
Подключаю этот класс в форме в кнопке на LS, все идеально работает. Тот же самый код, который добавил в кнопку формы копирую в агент LS и тут ошибка:


Code
1
2
3
4
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.newDocumentB uilder();
InputStream[/URL] localInputStream = (InputStream[/URL])AccessController[/URL].doPrivileged(new PrivilegedAction[/URL]()
{
public Object[/URL] run()
{
String[/URL] str = System[/URL].getProperty("org.apache.xml.security.re source.config");
return getClass().getResourceAsStream(str != null ? str : "resource/config.xml");
}
});
Document[/URL] localDocument = localDocumentBuilder.parse(localInputStr eam);
больше нигде нет использования метода parse()

Что за ерунда? Тот же самый код в кнопке на форме же работает, а в агенте не хочет? Может какие то права нужно прописать?
0
0 / 0 / 0
Регистрация: 13.10.2005
Сообщений: 848
22.09.2015, 14:45
Цитата Сообщение от proteam
туда подключен jar файл
переложите жарник в /jvm/lib/ext/.
вроде ж прямо в этой ветке обсуждалось...
0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 812
23.09.2015, 07:50
Цитата Сообщение от proteam
Люди, а у меня следующая ерунда...
А что выводит:

Code
1
System.out.println( System.getProperty("org.apache.xml.security.resource.config"));
Если null, то где лежит config.xml?
0
0 / 0 / 0
Регистрация: 17.10.2008
Сообщений: 506
23.09.2015, 08:23
Цитата Сообщение от garrick
В целом хочу заметить про формирование 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.


Цитата Сообщение от dymat
а в Eclipse вообще само всё набивается
Можешь пояснить, что значит само все набивается?
0
0 / 0 / 0
Регистрация: 27.02.2012
Сообщений: 143
24.09.2015, 08:36
Цитата Сообщение от oshmianski
переложите жарник в /jvm/lib/ext/.
вроде ж прямо в этой ветке обсуждалось...
Точно... не заметил
0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 812
27.09.2015, 10:13
Цитата Сообщение от dymat
Можешь пояснить, что значит само все набивается?
Оно знает HTML теги и при открытии тега, например <p> автоматически подставляет "закрытие" </p>, подсвечивает синтаксис, форматирует, ну и следит за корректностью текста. Вообще-то там ещё и визуальный редактор HTML страниц есть, но я им не пользуюсь. А с вордовскими шаблонами беда - постоянно что-то где-то "расползается".
0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 812
27.09.2015, 10:19
Могу ещё дать наводку, но следует знать, что хоть и есть возможность скачать и использовать это "бесплатно" - эта штука очень дорогая, если, конечно, вы уже не располагаете какой-нибудь супер-пуппер Oracle интерпрайз лицензией.
Oracle BI Publysher Desktop - там на странице есть ссылки на 32-х и 64-х битные версии.
0
0 / 0 / 0
Регистрация: 17.10.2008
Сообщений: 506
28.09.2015, 09:57
@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, или я что то путаю?
0
0 / 0 / 0
Регистрация: 13.10.2005
Сообщений: 848
28.09.2015, 10:16
source level (версия классов) и версия java (JVM) - это разные вещи.
смотрите в настройках java\compiler. возможно нужно предварительно очистить проект.
а возможно придется вообще отказаться от параметризации типов, у меня так и не получилось заставить их работать.
0
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
28.09.2015, 12:15
Цитата Сообщение от dymat
if source level is 1.5
оно близко к JVM, но не одно и тоже ;)
этот параметр выставляется в проекте (св-вах)
чтобы не задолбатся на фокусы из индусских рук - проще собрать проект, в бинарник, на "чистой" ИДЕ
а результат подсунуть в проект (jar/class)
0
0 / 0 / 0
Регистрация: 17.10.2008
Сообщений: 506
06.10.2015, 12:02
Цитата Сообщение от lmike
чтобы не задолбатся на фокусы из индусских рук - проще собрать проект, в бинарник, на "чистой" ИДЕ
а результат подсунуть в проект (jar/class)
то есть в eclipse, например, подключить notes.jar и джарники xdocreport, описать свой класс, на вход которого подается например notesdocument, внутри него формируется отчет, после этого экспортнуть проект в jar и подключить к агенту?

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


.SpoilerTarget">Спойлер: Ошибка
Agent error: Exception in thread "Launcher: JavaAgent"
Agent error: java.lang.NoClassDefFoundError: fr.opensagres.xdocreport.core.XDocReport Exception
Agent error: at java.lang.J9VMInternals.verifyImpl(Nativ e Method)
Agent error: at java.lang.J9VMInternals.verify(J9VMInter nals.java:72)
Agent error: at java.lang.J9VMInternals.initialize(J9VMI nternals.java:134)
Agent error: at java.lang.J9VMInternals.newInstanceImpl( Native Method)
Agent error: at java.lang.Class.newInstance(Class.java:1 345)
Agent error: at lotus.domino.AgentInfo.newInstance(Unkno wn 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.XDocReport Exception
Agent error: at java.lang.ClassNotFoundException.<init>( ClassNotFoundException.java:76)
Agent error: at lotus.domino.AgentLoader.loadClass(Unkno wn Source)
Agent error: at java.lang.ClassLoader.loadClass(ClassLoa der.java:619)
Agent error: ... 8 more
0
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
06.10.2015, 12:36
@dymat, нуда


Цитата Сообщение от dymat
NotesAgent.RunOnServer()
а сама БД где?
0
0 / 0 / 0
Регистрация: 17.10.2008
Сообщений: 506
06.10.2015, 12:44
На сервере
0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 812
06.10.2015, 13:32
Цитата Сообщение от dymat
Agent error: java.lang.NoClassDefFoundError: fr.opensagres.xdocreport.core.XDocReport Exception
Понятно же ругается.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.10.2015, 13:32

Зависает на чтении с InputStream
Приветствую. Проблема в том, что не могу получить в клиенте файл от сервера, отладка показала что функция зависает на 11 строке и никакой...

Override read in InputStream
Не получается переопределить метод в InputStream. Наследуюсь от InputStream:import java.io.IOException; import java.io.InputStream; ...

Быстродействие InputStream и OutputStream
Доброй ночи. Для работы с внешним устройством использую связь через WiFi TCP (сервер на ESP8266). При закольцовывании данных (соединяю...

InputStream Сервер/Клиент
Имеется сервер, при подключении к которому отделяется отдельный поток: while(true){ Socket socket = SS.accept(); ...

Потоки InputStream/OutputStream
Привет. Помогите разобраться с стримами. Вся абстакция классов и работа их методов как бы понятна. Но не могу понять как самому ручками...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru