I have a simple standalone java class that is trying to compile a jrxml file into a jasper file. This class worked with JasperReports library version 3.6 but not that I've upgraded to 5.5 it is throwing the following exception:
JasperCompileManager.compileReportToFile(args[0], args[0].replaceAll("jrxml", "jasper"));
4 Answers:
Hello Dana,
Please refer to following URL:
http://jasperreports.sourceforge.net/api/net/sf/jasperreports/engine/Jas...
I am using following method to compile the jrxml file.
Method: compile(java.lang.String sourceFileName) : compiles the XML report design file received as parameter, and returns the compiled report design object.
Before upgrading to japser 5.5, I was working on jasper 5.1 where compilation was successful given input as any of my reports XML files.
Now in jasper 5.5 this method works if I don't add any HTML5 chart component to the report, otherwise gives exception as java.lang.NoClassDefFoundError: com/jaspersoft/jasperserver/api/engine/jasperreports/util/InstanceProductTypeResolver.
Please suggest. I have already included javax.servlet-5.1.12.jar in classpath.
Thanks,
Jayashree.
Hello Dana,
I have solved this exception, by including following jars.
- jasperserver-api-engine-5.5.0.jar
- jasperserver-api-engine-impl-5.5.0.jar
- commons-lang-2.5.jar
- jasperserver-api-common-impl-5.5.0.jar
Previously in jasper 5.1 this jars were not needed.
But Now I’m trying to solve another exception:
INFO org.springframework.beans.factory.xml.XmlBeanDefinitionReader- Loading XML bean definitions from URL [jar:file:/G:/Savo_Insight/jasperreports-server-5.5/apache-tomcat/webapps/jasperserver-pro/WEB-INF/lib/jasperreports-highcharts-5.5.0.jar!/com/jaspersoft/jasperreports/highcharts/component_beans.xml]
net.sf.jasperreports.engine.JRException: Error compiling report design.
at net.sf.jasperreports.engine.design.JRAbstractCompiler.compileReport(JRAbstractCompiler.java:242)
at net.sf.jasperreports.engine.JasperCompileManager.compile(JasperCompileManager.java:241)
at net.sf.jasperreports.engine.JasperCompileManager.compile(JasperCompileManager.java:174)
at net.sf.jasperreports.engine.JasperCompileManager.compileReport(JasperCompileManager.java:459)
at com.savo.jasper.test.ValidateJrxml.compileJRxml(ValidateJrxml.java:45)
at com.savo.jasper.unittestcases.dashReports.Administrator_MobileAdoption_TestCase.testCompileJrxml(Administrator_MobileAdoption_TestCase.java:83)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at org.junit.runners.BlockJUnit4ClassRunner.runNotIgnored(BlockJUnit4ClassRunner.java:79)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:71)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:49)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Caused by: java.lang.NullPointerException
at com.jaspersoft.ji.license.LicenseManager.getInstance(LicenseManager.java:102)
at com.jaspersoft.ji.license.JRLicenseProviderAdapter.requireLicense(JRLicenseProviderAdapter.java:75)
at com.jaspersoft.ji.license.JRLicenseProviderAdapter.requireFeature(JRLicenseProviderAdapter.java:70)
at com.jaspersoft.jasperreports.license.LicenseManager.requireFeature(LicenseManager.java:113)
at com.jaspersoft.jasperreports.highcharts.HighChartsUtils.requireHighchartsFeature(HighChartsUtils.java:49)
at com.jaspersoft.jasperreports.highcharts.charts.StandardChartComponent.<init>(StandardChartComponent.java:73)
at com.jaspersoft.jasperreports.highcharts.charts.ChartCompiler.toCompiledComponent(ChartCompiler.java:67)
at net.sf.jasperreports.engine.base.JRBaseComponentElement.<init>(JRBaseComponentElement.java:60)
at net.sf.jasperreports.engine.base.JRBaseObjectFactory.visitComponentElement(JRBaseObjectFactory.java:1693)
at net.sf.jasperreports.engine.design.JRDesignComponentElement.visit(JRDesignComponentElement.java:103)
at net.sf.jasperreports.engine.JRAbstractObjectFactory.getVisitResult(JRAbstractObjectFactory.java:89)
at net.sf.jasperreports.engine.base.JRBaseElementGroup.<init>(JRBaseElementGroup.java:84)
at net.sf.jasperreports.engine.base.JRBaseBand.<init>(JRBaseBand.java:80)
at net.sf.jasperreports.engine.base.JRBaseObjectFactory.getBand(JRBaseObjectFactory.java:527)
at net.sf.jasperreports.engine.base.JRBaseReport.<init>(JRBaseReport.java:230)
at net.sf.jasperreports.engine.base.JRBaseReport.<init>(JRBaseReport.java:151)
at net.sf.jasperreports.engine.JasperReport.<init>(JasperReport.java:83)
at net.sf.jasperreports.engine.design.JRAbstractCompiler.compileReport(JRAbstractCompiler.java:225)
... 29 more
Have anyone encountered such an exception in 5.5?
Thanks,
Jayashree.
Dana,
Thanks for the follow up. It is odd that it needs a ServletOutputStream in what is supposed to be a Java SE library, but interesting to know that it works when provided with one. Personally, I think it is a bug in 5.5.0. Downgrading the library to 5.1.0 resolved the problem for me, and is probably also an option for you. This way I can keep using iReport instead of the new Eclipse based thing.
Best, Bailey
Hi Dana,
which is the jar (name?) you included?
Thanks!
Nicolas
We've needed to include the following jars in our build.xml:
<include name='joda-time-2.1.jar' />
<include name='servlet-api-2.4.jar' />
Now it compiles again.
Hello Dana,
My code is to compile jrxml file of report.
JasperCompileManager.compileReport(report1_jrxml.data)
I have upgraded from jasper 5.1 to 5.5, I got same error as you got.
NoClassDefFoundError: javax/servlet/ServletOutputStream
Then as per your suggestion I have included javax.servlet-5.1.12.jar in my classpath.
Now my report jrxml is "successfully compiled".
"But when my report contains HTML5 chart component". It gives me another exception : java.lang.NoClassDefFoundError: com/jaspersoft/jasperserver/api/engine/jasperreports/util/InstanceProductTypeResolver.
Following is complete stack trace :
java.lang.NoClassDefFoundError: com/jaspersoft/jasperserver/api/engine/jasperreports/util/InstanceProductTypeResolver
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(Unknown Source)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$000(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at com.jaspersoft.ji.license.LicenseManager.<clinit>(LicenseManager.java:99)
at com.jaspersoft.ji.license.JRLicenseProviderAdapter.requireLicense(JRLicenseProviderAdapter.java:75)
at com.jaspersoft.ji.license.JRLicenseProviderAdapter.requireFeature(JRLicenseProviderAdapter.java:70)
at com.jaspersoft.jasperreports.license.LicenseManager.requireFeature(LicenseManager.java:113)
at com.jaspersoft.jasperreports.highcharts.HighChartsUtils.requireHighchartsFeature(HighChartsUtils.java:49)
at com.jaspersoft.jasperreports.highcharts.charts.StandardChartComponent.<init>(StandardChartComponent.java:73)
at com.jaspersoft.jasperreports.highcharts.charts.ChartCompiler.toCompiledComponent(ChartCompiler.java:67)
at net.sf.jasperreports.engine.base.JRBaseComponentElement.<init>(JRBaseComponentElement.java:60)
at net.sf.jasperreports.engine.base.JRBaseObjectFactory.visitComponentElement(JRBaseObjectFactory.java:1693)
at net.sf.jasperreports.engine.design.JRDesignComponentElement.visit(JRDesignComponentElement.java:103)
at net.sf.jasperreports.engine.JRAbstractObjectFactory.getVisitResult(JRAbstractObjectFactory.java:89)
at net.sf.jasperreports.engine.base.JRBaseElementGroup.<init>(JRBaseElementGroup.java:84)
at net.sf.jasperreports.engine.base.JRBaseBand.<init>(JRBaseBand.java:80)
at net.sf.jasperreports.engine.base.JRBaseObjectFactory.getBand(JRBaseObjectFactory.java:527)
at net.sf.jasperreports.engine.base.JRBaseReport.<init>(JRBaseReport.java:230)
at net.sf.jasperreports.engine.base.JRBaseReport.<init>(JRBaseReport.java:151)
at net.sf.jasperreports.engine.JasperReport.<init>(JasperReport.java:83)
at net.sf.jasperreports.engine.design.JRAbstractCompiler.compileReport(JRAbstractCompiler.java:225)
at net.sf.jasperreports.engine.JasperCompileManager.compile(JasperCompileManager.java:241)
at net.sf.jasperreports.engine.JasperCompileManager.compile(JasperCompileManager.java:174)
at net.sf.jasperreports.engine.JasperCompileManager.compileReport(JasperCompileManager.java:459)
at com.savo.jasper.test.ValidateJrxml.compileJRxml(ValidateJrxml.java:45)
at com.savo.jasper.unittestcases.cannedReports.UsageTrendByUserGroup_TestCase.testCompileJrxml(UsageTrendByUserGroup_TestCase.java:103)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at org.junit.runners.BlockJUnit4ClassRunner.runNotIgnored(BlockJUnit4ClassRunner.java:79)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:71)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:49)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Caused by: java.lang.ClassNotFoundException: com.jaspersoft.jasperserver.api.engine.jasperreports.util.InstanceProductTypeResolver
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 59 more
Please suggest. Thanks in advance.
Regards,
Jayashree
Jayashree:
I don't see any class resembling that name in the Jasper Reports API.
D