繁体   English   中英

在Websphere上使用Jasper-Reports时出现“不良主要版本”错误

[英]“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.JRJdtCompilernet.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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM