Форум программистов, компьютерный форум, киберфорум
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. Показов 24631. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
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 и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru