在Java Tomcat上创建SAX解析器JasperReports时出错

时间:2017-02-24 16:00:02

标签: java xml jasper-reports

我正在使用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> 

1 个答案:

答案 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.

重新启动服务器,它应该可以工作。