[英]Unsupported class file major version 61 with TomEE 8
不幸的是,尝试按照此处其他类似问题的答案进行操作,但无济于事。 我们正在将我们的应用程序从 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/JDK 的东西我的机器上有 JAVA 7,里面只有 JAVA 17,它是如何持续发生的? 感谢您的时间。
该问题与 Java 无法读取 Java 17 编译的类无关。 查看堆栈跟踪,问题在于org.apache.xbean.asm9.ClassReader
无法读取您的类文件。 这个特殊的 ClassReader 是 TomEE 用来加载您的应用程序的。 TomEE 无法读取 Java 17 应用程序并不奇怪,因为上一次发布是在 8 月份,在 Java 17 出现之前。 它本身是使用旧版本的 Java 编译的。 希望 TomEE 的未来版本能够解决这个问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.