我试图使用像blob一样保存的.jrtx文件。
我以这种方式传递文件.jrtx:
InputStream docStyle = new ByteArrayInputStream(myBean.getDocStyle());
map.put("docStyle", docStyle);
在我的文件.jrxml中我有:
<parameter name="docStyle" class="java.lang.Object"/>
但是当jaspet试图填写报告时
JasperFillManager.fillReport(fileToFill, map, dataSuorce);
我收到以下错误:
Caused by: org.xml.sax.SAXParseException: Premature end of file.
at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.XMLVersionDetector.determineDocVersion(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at org.apache.commons.digester.Digester.parse(Digester.java:1916)
at net.sf.jasperreports.engine.xml.JRXmlTemplateLoader.loadTemplate(JRXmlTemplateLoader.java:195)
... 78 more
如何解决?
答案 0 :(得分:0)
问题是,当文件偏移位置计数器移动到文件末尾时读取流,在其他时间使用相同的流,您将收到错误。我使用docStyle.reset();