不幸的是,here试图遵循其他类似问题的答案,但无济于事。我们正在将应用程序从Java7升级到Java17。代码编译得很好,问题是当我们尝试在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)是的,我知道问题是我在Java17上编译的,不知何故,TomEE试图在一个旧版本上运行它(可能是Java7,因为那是我之前安装的版本),但考虑到我在机器上删除了所有Java7的JRE/JDK工具,里面只有Java17,它怎么会一直发生?谢谢您抽时间见我。
发布于 2021-11-11 16:53:21
这个问题与Java无法读取Java 17编译的类无关。查看堆栈跟踪,问题是org.apache.xbean.asm9.ClassReader无法读取您的类文件。这个特定的ClassReader是TomEE用来加载应用程序的。TomEE无法读取Java17应用程序并不奇怪,因为上一次发布是在Java17问世之前的8月份。它本身是使用旧版本的Java编译的。希望未来版本的TomEE能解决这个问题。
https://stackoverflow.com/questions/69930592
复制相似问题