[英]“Bad major version” error when using Jasper-Reports on Websphere
当我尝试在运行于Websphere 6.1的Servlet中填充JasperReport时,出现UnsupportedClassVersionError: Bad major version at offset=6
。
我猜编译后的JasperReport的版本(java 6?)与Websphere上的jre可以执行的版本(java 5)不同,但是我不知道为什么。 使用maven或在应用程序中(在servlet中)编译报告都会导致错误。
根据JasperReports提供的演示,该演示还显示了如何在Java 1.5中使用它,我在jasperreports.properties中添加了以下配置:
org.eclipse.jdt.core.compiler.source=1.5
org.eclipse.jdt.core.compiler.compliance=1.5
org.eclipse.jdt.core.compiler.codegen.TargetPlatform=1.5
但是错误仍然存在。
报告中使用的语言是Java,那么哪种编译器才是正确的选择? net.sf.jasperreports.engine.design.JRJdtCompiler
或net.sf.jasperreports.engine.design.JRJavacCompiler
吗?
不幸的是,文档没有解释这两个编译器之间的区别。
编辑:到目前为止,我一直在使用JRJavacCompiler。 使用JRJdtCompiler,我得到了NullPointer异常:
java.lang.NullPointerException
at java.lang.Class.isAssignableFrom(Native Method)
at net.sf.jasperreports.engine.fill.JRFillTextField.getFormat(JRFillTextField.java:706)
at net.sf.jasperreports.engine.fill.JRFillTextField.evaluateText(JRFillTextField.java:394)
at net.sf.jasperreports.engine.fill.JRFillTextField.evaluate(JRFillTextField.java:368)
at net.sf.jasperreports.engine.fill.JRFillElementContainer.evaluate(JRFillElementContainer.java:258)
at net.sf.jasperreports.engine.fill.JRFillBand.evaluate(JRFillBand.java:499)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillColumnBand(JRVerticalFiller.java:2036)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillDetail(JRVerticalFiller.java:760)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:270)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:128)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:946)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:864)
at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:84)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:624)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:540)
at com.swissre.sod.jone.web.server.FileStreamingServlet.doGet(FileStreamingServlet.java:48)
可能是您在应用程序中使用了用Java 6编译的库。
您可以检查依赖项的清单信息以了解更多信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.