【问题标题】:Unsupported class file major version 61 with TomEE 8TomEE 8 不支持的类文件主要版本 61
【发布时间】:2021-11-11 15:09:14
【问题描述】:

尝试关注其他类似问题的答案here,不幸的是,无济于事。我们正在将我们的应用程序从 JAVA 7 升级到 JAVA 17。代码编译得很好,问题是当我们尝试在 apache-tomee-plume-8.0.8 上运行 .war 文件时。 JAVA_HOME 设置正确: JAVA_HOME

以及路径: PATH

这里是日志错误信息:

Caused by: java.lang.RuntimeException: Unable to read class definition for com.ui.AccountListLight$SubListDataModel

    at org.apache.xbean.finder.AnnotationFinder.readClassDef(AnnotationFinder.java:1180)

    at org.apache.xbean.finder.AnnotationFinder.<init>(AnnotationFinder.java:153)

    at org.apache.xbean.finder.AnnotationFinder.<init>(AnnotationFinder.java:166)

    at org.apache.openejb.config.FinderFactory$OpenEJBAnnotationFinder.<init>(FinderFactory.java:546)

    at org.apache.openejb.config.FinderFactory.newFinder(FinderFactory.java:267)

    at org.apache.openejb.config.FinderFactory.create(FinderFactory.java:80)

    at org.apache.openejb.config.FinderFactory.createFinder(FinderFactory.java:69)

    at org.apache.openejb.config.DeploymentLoader.addWebModule(DeploymentLoader.java:878)

    ... 46 more

Caused by: java.lang.IllegalArgumentException: Unsupported class file major version 61

    at org.apache.xbean.asm9.ClassReader.<init>(ClassReader.java:189)

    at org.apache.xbean.asm9.ClassReader.<init>(ClassReader.java:170)

    at org.apache.xbean.asm9.ClassReader.<init>(ClassReader.java:156)

    at org.apache.xbean.asm9.ClassReader.<init>(ClassReader.java:277)

    at org.apache.xbean.finder.AnnotationFinder.readClassDef(AnnotationFinder.java:1176)

是的,我知道问题在于我在 JAVA 17 上编译,并且 TomEE 试图在旧版本上运行它(可能是 JAVA 7,因为那是我之前安装的),但考虑到我删除了所有 JRE/我机器上的 JAVA 7 的 JDK 东西,里面只有 JAVA 17,它是如何继续发生的?感谢您的宝贵时间。

【问题讨论】:

  • 您使用的是哪个版本的 TomEE?
  • apache-tomee-plume-8.0.8

标签: java apache-tomee


【解决方案1】:

这个问题与 Java 无法读取 Java 17 编译的类无关。查看堆栈跟踪,问题是org.apache.xbean.asm9.ClassReader 无法读取您的类文件。这个特殊的 ClassReader 是 TomEE 用来加载您的应用程序的一个。 TomEE 无法读取 Java 17 应用程序也就不足为奇了,因为上一次发布是在 Java 17 发布之前的 8 月。它本身是使用旧版本的 Java 编译的。希望未来的 TomEE 版本能够解决这个问题。

【讨论】:

  • Doh,现在很明显......是的,你是对的,只要我们降级到 JAVA 16 并用它编译项目,一切正常。谢谢 k314159!
  • 他们说 TomEE 8.0.9 将支持 Java 17 开箱即用,所以在它发布时尝试一下。
  • TomEE 8.0.9 支持 J17,目前正在投票中 :)
猜你喜欢
  • 2022-11-08
  • 1970-01-01
  • 2023-03-03
  • 1970-01-01
  • 2021-12-16
  • 1970-01-01
  • 2021-12-03
  • 1970-01-01
  • 2019-07-27
相关资源
最近更新 更多