While upgrading machines I have upgraded to run jdk 1.6 which have screwed up compiling of my reports with following error.
C:\Program Files (x86)\Java\jdk1.6.0_24\jre\lib\endorsed
Source File:c:/Users/greg/report2.jrxml
Exception in thread "main" net.sf.jasperreports.engine.JRRuntimeException: Error creating SAX parser
at net.sf.jasperreports.engine.xml.JRReportSaxParserFactory.createParser(JRReportSaxParserFactory.java:109)
at net.sf.jasperreports.engine.xml.JRXmlDigesterFactory.createParser(JRXmlDigesterFactory.java:1320)
at net.sf.jasperreports.engine.xml.JRXmlDigesterFactory.createDigester(JRXmlDigesterFactory.java:1295)
at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:199)
at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:164)
at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:148)
at net.sf.jasperreports.engine.JasperCompileManager.compileReportToFile(JasperCompileManager.java:85)
at com.americanbanksystems.complianceproreports.util.CompileReport.compileReport(CompileReport.java:133)
at com.americanbanksystems.complianceproreports.util.CompileReport.main(CompileReport.java:189)
Caused by: org.xml.sax.SAXNotRecognizedException: http://java.sun.com/xml/jaxp/properties/schemaLanguage
at gnu.xml.aelfred2.XmlReader.getProperty(XmlReader.java:181)
at gnu.xml.aelfred2.XmlReader.setProperty(XmlReader.java:166)
at gnu.xml.aelfred2.JAXPFactory$JaxpParser.setProperty(JAXPFactory.java:147)
at net.sf.jasperreports.engine.xml.JRReportSaxParserFactory.configureParser(JRReportSaxParserFactory.java:140)
at net.sf.jasperreports.engine.xml.JRReportSaxParserFactory.createParser(JRReportSaxParserFactory.java:104)
... 8 more
My first thought was to place the xalan.jar inside the ‘java.endorsed.dirs’ but that did not fix the problem.
System.out.println(System.getProperty("java.endorsed.dirs"));
So after a little investigation I have found the problem and simple solution, download following file or extract it from jasper reports libs folder
xercesImpl-2.7.0.jar
And place it inside your “java.endorsed.dirs” thats all.