|
0 / 0 / 0
Регистрация: 17.10.2008
Сообщений: 506
|
||||||
Xdocreport - inputstream cannot be null14.09.2015, 07:32. Показов 24290. Ответов 46
Метки нет (Все метки)
Всем привет!
Кто нибудь юзал данную библиотеку? подскажите, что не так делаю? Создал агента подключил все jar, в агенте открыл пример DocxProjectWithVelocity, запускаю и в java debug console вижу данную ошибку.
.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
|
||||||
| 14.09.2015, 07:32 | |
|
Ответы с готовыми решениями:
46
xdocreport Блин, для ЧЕГО НУЖНА Функция CREATE TABLE invoice( inv_id INT AUTO_INCREMENT NOT NULL , usr_id INT NOT NULL , prod_id INT NOT NULL , quantity INT NOT InputStream exceptions |
|
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 812
|
||||||
| 14.09.2015, 09:06 | ||||||
|
Здесь где-то ошибка
0
|
||||||
|
0 / 0 / 0
Регистрация: 17.10.2008
Сообщений: 506
|
||
| 14.09.2015, 09:10 | ||
Код (Java): InputStream[/URL] in = new FileInputStream[/URL](new File[/URL]("d:/DocxProjectWithVelocity.docx")); Agent Manager: Agent error: fr.opensagres.xdocreport.core.XDocReport Exception: Impossible to create report for the input stream. The report loader supports only [] files type.
0
|
||
|
0 / 0 / 0
Регистрация: 17.10.2008
Сообщений: 506
|
||
| 14.09.2015, 09:37 | ||
0
|
||
|
0 / 0 / 0
Регистрация: 13.10.2005
Сообщений: 848
|
||||||
| 14.09.2015, 09:57 | ||||||
|
вот рабочий код
Код (Java): import fr.opensagres.xdocreport.document.IXDocR eport; import fr.opensagres.xdocreport.document.regist ry.XDocReportRegistry; import fr.opensagres.xdocreport.template.IConte xt; import fr.opensagres.xdocreport.template.Templa teEngineKind; import org.apache.commons.io.FilenameUtils; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; import java.io.*; import java.util.List; /** * Created by vintselovych on 12.08.2014. */ public class XDocReporter { public XDocReporter() { } public String[/URL] process(String[/URL] tempalateFilePath, String[/URL] xmlFilePath) { String[/URL] outputfilepath = ""; try { InputStream[/URL] in = new FileInputStream[/URL](new File[/URL](tempalateFilePath)); IXDocReport report = XDocReportRegistry.getRegistry().loadRep ort(in, TemplateEngineKind.Velocity); IContext context = report.createContext(); // create an instance of SAXParser. SAXParser parser = SAXParserFactory.newInstance().newSAXPar ser(); // create an instance of DefaultHandler. XMLParserViaSax parseXml = new XMLParserViaSax(); InputStream[/URL] stream = new FileInputStream[/URL](xmlFilePath); parser.parse(stream, parseXml); List[/URL] items = parseXml.getItems(); context.put("items", items); stream.close(); File[/URL] inputfile = new File[/URL](tempalateFilePath); outputfilepath = inputfile.getParent() + "\\" + FilenameUtils.getBaseName(inputfile.getA bsolutePath()) + "_out." + FilenameUtils.getExtension(inputfile.get AbsolutePath()); OutputStream[/URL] out = new FileOutputStream[/URL](new File[/URL](outputfilepath)); report.process(context, out); if (items != null) items.clear(); } catch (Exception[/URL] e) { e.printStackTrace(); } return outputfilepath; } }
0
|
||||||
|
0 / 0 / 0
Регистрация: 14.01.2009
Сообщений: 257
|
|
| 14.09.2015, 10:09 | |
|
в примере файл лежит в самом проекте...положи файл в ресурсы агента и вызывай как в примере. Только для работы необходимо добавить в java.policy следующие разрешения
Код (Java): grant { permission java.lang.RuntimePermission[/URL] "getClassLoader"; permission java.lang.RuntimePermission[/URL] "setContextClassLoader"; } ну или если хочешь использовать файл на жестком используй другую конструкцию Код (Java): InputStream[/URL] in = new FileInputStream[/URL]("/tmp/template.odt"); IXDocReport report = XDocReportRegistry.getRegistry().loadRep ort(in,TemplateEngineKind.Velocity);
0
|
|
|
0 / 0 / 0
Регистрация: 17.10.2008
Сообщений: 506
|
||||||
| 14.09.2015, 10:32 | ||||||
|
Не получается так, все равно требует через report loader:
Код (Java): InputStream[/URL] in = new FileInputStream[/URL]("d:/docxandvelocity/DocxProjectWithVelocity.docx"); IXDocReport report = XDocReportRegistry.getRegistry().loadRep ort(in,TemplateEngineKind.Velocity);
0
|
||||||
|
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 812
|
|||||||
| 14.09.2015, 14:16 | |||||||
Только доставать его надо так:
0
|
|||||||
|
0 / 0 / 0
Регистрация: 17.10.2008
Сообщений: 506
|
|
| 14.09.2015, 14:18 | |
|
Ага, уже догадался, все равно не хочет работать, никак(
0
|
|
|
0 / 0 / 0
Регистрация: 13.10.2005
Сообщений: 848
|
|
| 14.09.2015, 14:21 | |
|
1.
у меняв grant security добавлены строки Код (Java): permission java.awt.AWTPermission[/URL] "listenToAllAWTEvents"; permission java.lang.RuntimePermission[/URL] "setContextClassLoader"; 2. может каких jarников не хватает?
0
|
|
|
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 812
|
|
| 14.09.2015, 14:21 | |
|
добавил пример...
0
|
|
|
0 / 0 / 0
Регистрация: 13.10.2005
Сообщений: 848
|
|
| 14.09.2015, 14:24 | |
|
в догонку линк
0
|
|
|
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 812
|
|
| 14.09.2015, 14:24 | |
|
А чем код @oshmianski не подошел? Вроде там всё правильно.
0
|
|
|
0 / 0 / 0
Регистрация: 13.10.2005
Сообщений: 848
|
||||||
| 14.09.2015, 14:26 | ||||||
|
вот мой список ext (много лишнего, но для сравнения):
0
|
||||||
|
0 / 0 / 0
Регистрация: 17.10.2008
Сообщений: 506
|
|||||
| 14.09.2015, 14:39 | |||||
.SpoilerTarget">Спойлер: Тоже ошибка fr.opensagres.xdocreport.core.XDocReport Exception: Impossible to create report for the input stream. The report loader supports only [] files type. at fr.opensagres.xdocreport.document.regist ry.XDocReportRegistry.createReport(XDocR eportRegistry.java:380) at fr.opensagres.xdocreport.document.regist ry.XDocReportRegistry.createReport(XDocR eportRegistry.java:360) at fr.opensagres.xdocreport.document.regist ry.XDocReportRegistry.loadReport(XDocRep ortRegistry.java:326) at fr.opensagres.xdocreport.document.regist ry.XDocReportRegistry.loadReport(XDocRep ortRegistry.java:317) at fr.opensagres.xdocreport.document.regist ry.XDocReportRegistry.loadReport(XDocRep ortRegistry.java:302) at DocxProjectWithVelocity.NotesMain(Unknow n Source) at lotus.domino.AgentBase.runNotes(Unknown Source) at lotus.domino.NotesThread.run(Unknown Source)
0
|
|||||
|
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 812
|
||
| 14.09.2015, 14:42 | ||
|
Тоже как-то пытался эту штуку к Лотусу прикрутить, но уж больно много всего оно с собой тянет. Решил, что Apache FOP намного легче. В работе конечно, а не в разработке, т.к. FO шаблон не так просто сделать как DOCX файл. Ещё есть вариант пропускать RTF через шаблонизатор, например Velocity. Только там русские буковки ещё конвертить надо.
--- Добавлено 15 сен 2015. Первое сообщение размещено 15 сен 2015 ---
Библиотечки не хватает.
0
|
||
|
0 / 0 / 0
Регистрация: 13.10.2005
Сообщений: 848
|
|
| 14.09.2015, 14:47 | |
|
думаю ответ.
1. редактор может не подсветить 2. переложите все зависимые jarки в ext папку, а из Archive агента уберите 3. добавьте в grant соответсвующие строки
0
|
|
|
0 / 0 / 0
Регистрация: 14.01.2009
Сообщений: 257
|
|
| 14.09.2015, 15:01 | |
|
Если просто пытаешься пощупать данную библиотеку, то скачай примеры с их сайта и запусти в том же eclipse. Если запустятся, тогда тупым копированием переносишь в агента. Я таким способом отлаживался и я использую данную библиотеку в продакшене
0
|
|
|
0 / 0 / 0
Регистрация: 17.10.2008
Сообщений: 506
|
||
| 14.09.2015, 15:38 | ||
0
|
||
| 14.09.2015, 15:38 | |
|
Помогаю со студенческими работами здесь
20
Зависает на чтении с InputStream Override read in InputStream Быстродействие InputStream и OutputStream InputStream Сервер/Клиент Потоки InputStream/OutputStream Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536
Одним из. . .
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
|
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|