我正在使用JasperReports来使用tomcat在Java Web应用程序上创建报告,但是我遇到了这个错误,我无法在Google上找到解决方案。我发现的唯一主题是将Xerces添加到我所做的依赖项中,但仍然没有改变。
String reportOutput = reportOutputLocation+reportName;
InputStream reportTemplate = getClass().getClassLoader().getResourceAsStream(reportSrcLocation);
JasperDesign jasperDesign = JRXmlLoader.load(reportTemplate);
JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);
Map<String, Object> paramObjects = new HashMap<String, Object>();
paramObjects.putAll(parameters);
JasperPrint jprint = JasperFillManager.fillReport(jasperReport, paramObjects, conn);
错误发生在此处:JRXmlLoader.load(reportTemplate);
这是堆栈跟踪输出:
net.sf.jasperreports.engine.JRRuntimeException: Error creating SAX parser
net.sf.jasperreports.engine.xml.BaseSaxParserFactory.createParser(BaseSaxParserFactory.java:99)
net.sf.jasperreports.engine.xml.JRXmlDigesterFactory.createParser(JRXmlDigesterFactory.java:1456)
net.sf.jasperreports.engine.xml.JRXmlDigesterFactory.createDigester(JRXmlDigesterFactory.java:1432)
net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:262)
net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:247)
java.lang.Thread.run(Unknown Source)
<jasper.version>5.6.1</jasper.version>
<dependency>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
<version>2.9.1</version>
</dependency>
答案 0 :(得分:0)
我知道代码工作正常,问题出在项目设置中。 pom.xml很好,也是依赖的。
为了实现这一点,我所做的是双击Eclipse上的tomcat服务器。
- Download xercesImpl-2.8.1.jar or any other version
- Click on "Open Launch Configuration"
- Go to the tab "Classpath"
- Click on Bootstrap Entries
- Add External JARs
- Select xercesImpl-2.8.1.jar or any version that you prefer.
重新启动服务器,它应该可以工作。