2012-02-24 36 views
1

当我尝试在Websphere 6.1上运行的Servlet中填充JasperReport时,我得到一个UnsupportedClassVersionError: Bad major version at offset=6在Websphere上使用Jasper-Reports时出现“错误的主要版本”错误

我猜测编译好的JasperReport具有与websphere可以执行的jre不同的版本(java 6?),但我找不到原因。使用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.JRJdtCompilernet.sf.jasperreports.engine.design.JRJavacCompiler

不幸的是,该文件并没有说明编辑这两个编译器之间的区别...

:所以车费我一直在使用JRJavacCompiler。随着JRJdtCompiler我得到一个空指针异常:

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) 

回答

1

这可能是你正在使用你的应用程序,在Java编译库6.

你可以检查你的依赖关系的清单信息,找出更多。

+0

不,我不认为这是事实,因为我们在我们的标准环境中使用jasper创建另一个应用程序,但不幸的是,使用常规表达式和编译器。 (并且至少jasper jar根据pom.xml提供了符合java 5的源代码)。另外当使用JRJavacCompiler时,我意识到我得到了一个不同的例外 – steffinchen 2012-02-24 14:50:23

相关问题