繁体   English   中英

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

[英]Fail to deploy bare bone webapp to tomee 7.1.0 running openjdk 11

我打算将一个 webapp 从 java 8/tomee 7.0.4 迁移到 java 11/tomee 7.1.0,但仍然没有成功。 所以我编写了一个只有一个 facelet 页面和一个托管 bean 的准系统 web 应用程序。 这适用于 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 包修改了javax.xml.bind 不存在,这也失败了。

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

感谢您的建议,我认为很多人应该有同样的问题。

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM