简体   繁体   English

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

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

I am planning to migrate a webapp from java 8/tomee 7.0.4 to java 11/tomee 7.1.0, but still unsuccessful.我打算将一个 webapp 从 java 8/tomee 7.0.4 迁移到 java 11/tomee 7.1.0,但仍然没有成功。 So I write a barebone webapp with only one facelet page and one managed bean.所以我编写了一个只有一个 facelet 页面和一个托管 bean 的准系统 web 应用程序。 This works on java 10/tomee 7.1.0 but not java 11. The errors are:这适用于 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)

After some Googling, from http://tomee-openejb.979440.n4.nabble.com/Some-jars-in-TomEE-8-SNAPSHOT-are-not-Java-11-compatible-td4685162.html it seems that the problem originates from jaxb-impl.经过一番谷歌搜索,从http://tomee-openejb.979440.n4.nabble.com/Some-jars-in-TomEE-8-SNAPSHOT-are-not-Java-11-compatible-td4685162.html看来,问题源于 jaxb-impl。 So I tried adding to pom.xml according to https://winterbe.com/posts/2018/08/29/migrate-maven-projects-to-java-11-jigsaw/ which failed.所以我尝试根据https://winterbe.com/posts/2018/08/29/migrate-maven-projects-to-java-11-jigsaw/添加到 pom.xml 失败。 I restored pom.xml and modified according to Java 11 package javax.xml.bind does not exist which also failed.我恢复了 pom.xml 并根据Java 11 包修改了javax.xml.bind 不存在,这也失败了。

This is for tomee server which is less popular.这是针对不太流行的 tomee 服务器。 But tomee 7.1.0 is based on tomcat 8.5 which should be much more popular.但是 tomee 7.1.0 基于 tomcat 8.5,它应该更受欢迎。 I think the problem will still be the same.我认为问题仍然是一样的。

Advice is appreciated and I think many people should have the same problem.感谢您的建议,我认为很多人应该有同样的问题。

Try upgrading your tomcat/tomee to the latest version, or downgrading your Java version as incompatible versions tend to fire these NoSuchMethod/NoSuchFile exceptions.尝试将您的 tomcat/tomee 升级到最新版本,或者降级您的 Java 版本,因为不兼容的版本往往会触发这些NoSuchMethod/NoSuchFile异常。

Could be that one technology is reliant on a certain other technology, and is aware of a certain API version, but you are trying to use a higher API version, which could be entirely different.可能是一种技术依赖于某种其他技术,并且知道某个 API 版本,但您正在尝试使用更高的 API 版本,这可能完全不同。

Another possibility is that tomee is not yet ready to work with java 11 at all (but this seems rather unlikely).另一种可能性是 tomee 还没有准备好使用 java 11(但这似乎不太可能)。

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

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