我正在使用tomee plugin版本8.0.5 (在mvn存储库上的最新发现)来生成我的JSF项目的可执行Jar,
</plugin>
<plugin>
<groupId>org.apache.tomee.maven</groupId>
<artifactId> </artifactId>
<version>8.0.5</version>
<executions>
<execution>
<id>executable-jar</id>
<goals>
<goal>exec</goal>
</goals>
<phase>package</phase>
</execution>
</executions>
</plugin>包命令运行良好,我得到了War和Jar,但是当我启动服务器时
java -jar MyJar.jar 我使用的是Java 14,Tomee上的部署在Eclipse中运行得很好,应用程序加载会导致这个错误:
Caused by: org.apache.openejb.OpenEJBException: Unable to create annotation scanner for web module MonProjet-0.0.1-SNAPSHOT: Unable to read class definition for gestion.controller.GuestServiceControler
at org.apache.openejb.config.DeploymentLoader.addWebModule(DeploymentLoader.java:886)
at org.apache.openejb.config.DeploymentLoader.load(DeploymentLoader.java:233)
at org.apache.tomee.catalina.TomcatWebAppBuilder.loadApplication(TomcatWebAppBuilder.java:2361)
... 44 more
Caused by: java.lang.RuntimeException: Unable to read class definition for gestion.controller.GuestServiceControler
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 58
at org.apache.xbean.asm7.ClassReader.<init>(ClassReader.java:195)
at org.apache.xbean.asm7.ClassReader.<init>(ClassReader.java:176)
at org.apache.xbean.asm7.ClassReader.<init>(ClassReader.java:162)
at org.apache.xbean.asm7.ClassReader.<init>(ClassReader.java:283)
at org.apache.xbean.finder.AnnotationFinder.readClassDef(AnnotationFinder.java:1176我对此进行了研究,问题是在"org.apache.xbean.asm7“依赖中,我试图通过强制插件使用"org.apache.xbean.asm8”来覆盖这个依赖,但是它没有工作,而且没有其他版本的Maven插件可以使用,有人有更多的信息吗?谢谢
发布于 2021-04-01 12:30:48
较早的TomEE <= 8.0.6仍在使用asm7的阴影版本,该版本对较新的Java版本的支持有限(最大)。( JDK 13)。这也会影响Tomee的几个过渡依赖项,如OWB、CXF等。
实际上,是否有一些与JDK 16相关的工作,以及为了支持下一个JDK16发行版而等待的一些打开的拉请求:
根据我的经验,TomEE 8.0.6在JDK11中运行良好。所以现在,您应该使用JDK11,并等到下一个包含相关更改的TomEE发行版结束。
更新(15.04.2021)
我目前正在使用JDK-16运行一个TomEE 8.0.7-快照(Plume) (它也适用于Maven插件)。
就目前而言,下列调整是必要的:
您需要通过<lib>org.apache.openjpa:openjpa:3.1.3-SNAPSHOT</lib>删除OpenJPA 3.1.2及其在<libs>中的瞬态asm8依赖,并通过<lib>remove:openjpa</lib>和<lib>remove:xbean-asm8-shaded</lib>重新添加最新的3.1.3-SNAPSHOT。
目前,
<args>--illegal-access=permit</args>,以允许一些反射和其他内容。Java 16切换了默认的.更新(10.10.2022)
TomEE 8.0.9支持开箱即用的JDK17。
https://stackoverflow.com/questions/65290734
复制相似问题