无法将裸骨webapp部署到运行openjdk 11的tomee 7.1.0

问题描述 投票:1回答:1

我打算将webapp从java 8 / tomee 7.0.4迁移到java 11 / tomee 7.1.0,但仍然不成功。所以我写了一个只有一个facelet页面和一个托管bean的准系统webapp。这适用于java 10 / tomee 7.1.0但不适用于java 11.错误是:

java.lang.IllegalStateException: Cannot get Unsafe.defineClass
....
java.lang.NoSuchMethodException: sun.misc.Unsafe.defineClass(java.lang.String, [B, int, int, java.lang.ClassLoader, java.security.ProtectionDomain)

经过一些谷歌搜索,来自http://tomee-openejb.979440.n4.nabble.com/Some-jars-in-TomEE-8-SNAPSHOT-are-not-Java-11-compatible-td4685162.html似乎问题源于jaxb-impl。所以我尝试根据https://winterbe.com/posts/2018/08/29/migrate-maven-projects-to-java-11-jigsaw/添加到pom.xml,但失败了。我恢复了pom.xml并根据Java 11 package javax.xml.bind does not exist进行了修改,但也失败了。

这适用于不太受欢迎的tomee服务器。但是tomee 7.1.0基于tomcat 8.5,它应该更受欢迎。我认为问题仍然是一样的。

建议表示赞赏,我认为很多人应该有同样的问题。

java maven tomcat8 java-11 tomee-7
1个回答
1
投票

尝试将tomcat / tomee升级到最新版本,或降级Java版本,因为不兼容的版本往往会触发这些NoSuchMethod/NoSuchFile异常。

可能是一种技术依赖于某种其他技术,并且知道某种API版本,但您正在尝试使用更高的API版本,这可能完全不同。

另一种可能性是,tomee还没有准备好使用java 11(但这似乎不太可能)。

© www.soinside.com 2019 - 2024. All rights reserved.