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

2024-01-07

当我尝试在 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 or 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 中编译的库。

您可以检查依赖项的 MANIFEST 信息以了解更多信息。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Websphere 上使用 Jasper-Reports 时出现“错误的主要版本”错误 的相关文章

随机推荐