1

I'm developing a java web app that uses Jasper report to show some report. Now some version changes at my depencencies I'm getting the following error:

net.sf.jasperreports.engine.JRRuntimeException: java.io.IOException: SAX2 driver class org.apache.xerces.parsers.SAXParser not found
at net.sf.jasperreports.renderers.BatikRenderer.ensureSvg(BatikRenderer.java:229)
at net.sf.jasperreports.renderers.BatikRenderer.ensureSvg(BatikRenderer.java:239)
at net.sf.jasperreports.renderers.BatikRenderer.getDimension(BatikRenderer.java:157)
at net.sf.jasperreports.engine.export.JRPdfExporter.exportImage(JRPdfExporter.java:1434)
at net.sf.jasperreports.engine.export.JRPdfExporter.exportElements(JRPdfExporter.java:854)
at net.sf.jasperreports.engine.export.JRPdfExporter.exportPage(JRPdfExporter.java:818)
at net.sf.jasperreports.engine.export.JRPdfExporter.exportReportToStream(JRPdfExporter.java:695)
at net.sf.jasperreports.engine.export.JRPdfExporter.exportReport(JRPdfExporter.java:396)
at net.sf.jasperreports.engine.JasperExportManager.exportToPdfStream(JasperExportManager.java:191)
at net.sf.jasperreports.engine.JasperExportManager.exportReportToPdfStream(JasperExportManager.java:527)

I think that the error could be due from build path. This is my dependency tree:

    [INFO] ------------------------------------------------------------------------
[INFO] Building vaadin-webapp-billing 2.3.7-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ vaadin-webapp-billing ---
[INFO] it.mycompany:vaadin-webapp-billing:war:2.3.7-SNAPSHOT
[INFO] +- it.mycompany:services-billing:jar:2.3.7-SNAPSHOT:compile
[INFO] |  +- it.mycompany:util-billing:jar:2.3.7-SNAPSHOT:compile
[INFO] |  |  +- it.mycompany:model-billing:jar:2.3.7-SNAPSHOT:compile
[INFO] |  |  |  +- org.eclipse.persistence:org.eclipse.persistence.jpa:jar:2.5.1:compile
[INFO] |  |  |  |  +- org.eclipse.persistence:javax.persistence:jar:2.1.0:compile
[INFO] |  |  |  |  +- org.eclipse.persistence:org.eclipse.persistence.asm:jar:2.5.1:compile
[INFO] |  |  |  |  +- org.eclipse.persistence:org.eclipse.persistence.antlr:jar:2.5.1:compile
[INFO] |  |  |  |  +- org.eclipse.persistence:org.eclipse.persistence.jpa.jpql:jar:2.5.1:compile
[INFO] |  |  |  |  \- org.eclipse.persistence:org.eclipse.persistence.core:jar:2.5.1:compile
[INFO] |  |  |  +- org.eclipse.persistence:eclipselink:jar:2.5.1:compile
[INFO] |  |  |  |  \- org.eclipse.persistence:commonj.sdo:jar:2.1.1:compile
[INFO] |  |  |  \- com.oracle:ojdbc14:jar:14.0.0:compile
[INFO] |  |  +- org.apache.poi:poi-ooxml:jar:3.7:compile
[INFO] |  |  |  +- org.apache.poi:poi:jar:3.7:compile
[INFO] |  |  |  +- org.apache.poi:poi-ooxml-schemas:jar:3.7:compile
[INFO] |  |  |  |  \- org.apache.xmlbeans:xmlbeans:jar:2.3.0:compile
[INFO] |  |  |  \- dom4j:dom4j:jar:1.6.1:compile
[INFO] |  |  +- com.lowagie:itext:jar:2.1.7.js1:compile
[INFO] |  |  \- it.mycompany:vaadin-common-component:jar:1.0.0:compile
[INFO] |  |     \- org.springframework.data:spring-data-jpa:jar:1.2.0.RELEASE:compile
[INFO] |  |        +- org.springframework.data:spring-data-commons-core:jar:1.4.0.RELEASE:compile
[INFO] |  |        \- org.slf4j:jcl-over-slf4j:jar:1.6.1:runtime
[INFO] |  +- org.springframework:spring-aop:jar:4.1.4.RELEASE:compile
[INFO] |  |  \- aopalliance:aopalliance:jar:1.0:compile
[INFO] |  +- org.springframework:spring-aspects:jar:4.1.4.RELEASE:compile
[INFO] |  |  \- org.aspectj:aspectjweaver:jar:1.8.4:compile
[INFO] |  +- org.springframework:spring-beans:jar:4.1.4.RELEASE:compile
[INFO] |  +- org.springframework:spring-context:jar:4.1.4.RELEASE:compile
[INFO] |  |  \- org.springframework:spring-expression:jar:4.1.4.RELEASE:compile
[INFO] |  +- org.springframework:spring-context-support:jar:4.1.4.RELEASE:compile
[INFO] |  +- org.springframework:spring-core:jar:4.1.4.RELEASE:compile
[INFO] |  |  \- commons-logging:commons-logging:jar:1.2:compile
[INFO] |  +- org.springframework:spring-jdbc:jar:4.1.4.RELEASE:compile
[INFO] |  +- org.springframework:spring-orm:jar:4.1.4.RELEASE:compile
[INFO] |  +- org.springframework:spring-tx:jar:4.1.4.RELEASE:compile
[INFO] |  +- org.springframework:spring-web:jar:4.1.4.RELEASE:compile
[INFO] |  +- org.aspectj:aspectjrt:jar:1.7.1:compile
[INFO] |  +- org.aspectj:aspectjtools:jar:1.7.1:compile
[INFO] |  +- net.sf.jasperreports:jasperreports:jar:5.0.0:compile
[INFO] |  |  +- commons-beanutils:commons-beanutils:jar:1.8.0:compile
[INFO] |  |  +- commons-digester:commons-digester:jar:2.1:compile
[INFO] |  |  +- jfree:jcommon:jar:1.0.15:compile
[INFO] |  |  +- jfree:jfreechart:jar:1.0.12:compile
[INFO] |  |  +- xml-apis:xml-apis:jar:1.3.02:compile
[INFO] |  |  +- org.codehaus.castor:castor:jar:1.2:compile
[INFO] |  |  +- com.fasterxml.jackson.core:jackson-core:jar:2.0.5:compile
[INFO] |  |  +- com.fasterxml.jackson.core:jackson-databind:jar:2.0.5:compile
[INFO] |  |  \- com.fasterxml.jackson.core:jackson-annotations:jar:2.0.5:compile
[INFO] |  +- net.sf.jasperreports:jasperreports-fonts:jar:4.0.0:compile
[INFO] |  +- commons-io:commons-io:jar:2.4:compile
[INFO] |  +- net.sf.barcode4j:barcode4j:jar:2.1:compile
[INFO] |  |  +- avalon-framework:avalon-framework-impl:jar:4.2.0:compile
[INFO] |  |  +- commons-cli:commons-cli:jar:1.0:compile
[INFO] |  |  \- org.apache.ant:ant:jar:1.7.1:compile
[INFO] |  |     \- org.apache.ant:ant-launcher:jar:1.7.1:compile
[INFO] |  +- org.codehaus.groovy:groovy-all:jar:2.2.1:compile
[INFO] |  +- it.mycompany.fonts:custom-fonts-jasper:jar:1.0:compile
[INFO] |  +- net.sourceforge.barbecue:barbecue:jar:1.5-beta1:compile
[INFO] |  +- batik:batik-bridge:jar:1.6-1:compile
[INFO] |  |  +- batik:batik-gvt:jar:1.6-1:compile
[INFO] |  |  |  \- batik:batik-awt-util:jar:1.6-1:compile
[INFO] |  |  |     \- batik:batik-util:jar:1.6-1:compile
[INFO] |  |  |        \- batik:batik-gui-util:jar:1.6-1:compile
[INFO] |  |  |           \- batik:batik-ext:jar:1.6-1:compile
[INFO] |  |  |              \- xml-apis:xmlParserAPIs:jar:2.0.2:compile
[INFO] |  |  +- batik:batik-script:jar:1.6-1:compile
[INFO] |  |  |  \- rhino:js:jar:1.5R4.1:compile
[INFO] |  |  \- batik:batik-svg-dom:jar:1.6-1:compile
[INFO] |  |     +- batik:batik-dom:jar:1.6-1:compile
[INFO] |  |     |  +- batik:batik-css:jar:1.6-1:compile
[INFO] |  |     |  \- batik:batik-xml:jar:1.6-1:compile
[INFO] |  |     \- batik:batik-parser:jar:1.6-1:compile
[INFO] |  +- xerces:xercesImpl:jar:2.9.0:compile
[INFO] |  +- org.springframework.data:spring-data-jdbc-core:jar:1.0.0.RELEASE:compile
[INFO] |  |  \- org.springframework.retry:spring-retry:jar:1.0.0.RELEASE:compile
[INFO] |  +- org.springframework.data:spring-data-oracle:jar:1.0.0.RELEASE:compile
[INFO] |  +- com.google.collections:google-collections:jar:1.0:compile
[INFO] |  +- net.sf.opencsv:opencsv:jar:2.0:compile
[INFO] |  +- it.mycompany:csv-validator:jar:1.0.0:compile
[INFO] |  +- javax.mail:mail:jar:1.4.7:compile
[INFO] |  |  \- javax.activation:activation:jar:1.1:compile
[INFO] |  +- com.sun.xml.bind:jaxb-xjc:jar:2.2.5:compile
[INFO] |  \- commons-collections:commons-collections:jar:3.2.1:compile
[INFO] +- com.vaadin:vaadin-bom:pom:7.5.5:import
[INFO] +- com.vaadin:vaadin-client:jar:7.5.5:provided
[INFO] |  +- com.vaadin:vaadin-shared:jar:7.5.5:compile
[INFO] |  |  +- com.vaadin.external.flute:flute:jar:1.3.0.gg2:compile
[INFO] |  |  +- com.vaadin.external.streamhtmlparser:streamhtmlparser-jsilver:jar:0.0.10.vaadin1:compile
[INFO] |  |  \- com.vaadin.external.google:guava:jar:16.0.1.vaadin1:compile
[INFO] |  +- org.w3c.css:sac:jar:1.3:compile
[INFO] |  +- javax.validation:validation-api:jar:1.0.0.GA:provided
[INFO] |  \- javax.validation:validation-api:jar:sources:1.0.0.GA:provided
[INFO] +- com.vaadin:vaadin-server:jar:7.5.5:compile
[INFO] |  +- com.vaadin:vaadin-sass-compiler:jar:0.9.12:compile
[INFO] |  \- org.jsoup:jsoup:jar:1.8.1:compile
[INFO] +- com.vaadin:vaadin-themes:jar:7.5.5:compile
[INFO] +- org.vaadin.addon:easyuploads:jar:7.4.2:compile
[INFO] |  \- org.vaadin:viritin:jar:1.35:compile
[INFO] |     +- org.vaadin.addon:confirmdialog:jar:2.1.2:compile
[INFO] |     +- org.commonjava.googlecode.markdown4j:markdown4j:jar:2.2-cj-1.0:compile
[INFO] |     +- org.apache.commons:commons-lang3:jar:3.3.2:compile
[INFO] |     \- javax.el:javax.el-api:jar:2.2.4:compile
[INFO] +- org.vaadin.addons:wizards-for-vaadin:jar:1.1.0:compile
[INFO] +- org.vaadin.addons:filteringtable:jar:0.9.13.v7:compile
[INFO] |  \- org.vaadin.addons:popupbutton:jar:2.5.0:compile
[INFO] +- com.vaadin:vaadin-push:jar:7.5.5:compile
[INFO] |  \- com.vaadin.external.atmosphere:atmosphere-runtime:jar:2.2.7.vaadin1:compile
[INFO] |     \- com.vaadin.external.slf4j:vaadin-slf4j-jdk14:jar:1.6.1:compile
[INFO] +- com.vaadin.addon:vaadin-charts:jar:1.1.7:compile
[INFO] |  \- com.google.code.gson:gson:jar:2.2:compile
[INFO] +- ru.xpoft.vaadin:spring-vaadin-integration:jar:3.1:compile
[INFO] |  \- org.slf4j:slf4j-api:jar:1.7.7:compile
[INFO] +- javax.servlet:javax.servlet-api:jar:3.0.1:provided
[INFO] +- org.iban4j:iban4j:jar:2.1.1:compile
[INFO] \- com.google.code.maven-scm-provider-svnjava:maven-scm-provider-svnjava:jar:2.0.6:compile
[INFO]    +- org.apache.maven.scm:maven-scm-provider-svn-commons:jar:1.8:compile
[INFO]    |  \- org.apache.maven.scm:maven-scm-api:jar:1.8:compile
[INFO]    +- org.tmatesoft.svnkit:svnkit:jar:1.7.8:compile
[INFO]    |  +- org.tmatesoft.sqljet:sqljet:jar:1.1.6:compile
[INFO]    |  |  \- org.antlr:antlr-runtime:jar:3.4:compile
[INFO]    |  +- de.regnis.q.sequence:sequence-library:jar:1.0.2:compile
[INFO]    |  \- com.trilead:trilead-ssh2:jar:1.0.0-build215:compile
[INFO]    +- net.java.dev.jna:jna:jar:3.2.2:compile
[INFO]    +- org.codehaus.plexus:plexus-utils:jar:3.0.14:compile
[INFO]    \- commons-lang:commons-lang:jar:2.6:compile

Can you give me some suggestion about this error?

Skizzo
  • 2,883
  • 8
  • 52
  • 99

2 Answers2

4

It surely has to do with xerces hell..., I see you have the xercesImpl.jar on classpath that has this class, but you got also other libraries including this class as xmlParserAPIs.jar, try to remove one of them I would remove the xercesImpl.jar.

Check out this... Dealing with "Xerces hell" in Java/Maven?

Community
  • 1
  • 1
Petter Friberg
  • 21,252
  • 9
  • 60
  • 109
4

The SAX2 driver class org.apache.xerces.parsers.SAXParser is located into xerces-2.9.0.jar file.

Check if it is in your classpath when you're launching your web application and, if not present, simply add it.

Also check if some of the dependencies you have included have to be declared as provided, meaning that they are already present in your application server lib folder, since there could be a version conflict.

abarisone
  • 3,707
  • 11
  • 35
  • 54
  • Hi @abarisone I have the same issue in my server. But there is one strange behavior. Previously my application was in other server, but there was not exception. After migrating to new server, this exception has occurred frequently. As of now, I have added *-Djavax.xml.parsers.SAXParserFactory="com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl"* argument to tomcat server. But this argument sometimes fails, so I have to restart server when it fails. How can i find the root cause? – Aakash Patel Feb 07 '19 at 10:31