Не удалось развернуть голое веб-приложение в Tomee 7.1.0 под управлением openjdk 11
Я планирую перенести webapp из java 8/tomee 7.0.4 в java 11/tomee 7.1.0, но все еще безуспешно. Так что я пишу голое веб-приложение, содержащее только одну страницу лицевой стороны и один управляемый компонент. Это работает на 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)
После некоторого поиска в Google, из http://tomee-openejb.979440.n4.nabble.com/Some-jars-in-TomEE-8-SNAPSHOT-are-not-Java-11-compatible-td4685162.html кажется, что Проблема происходит от Jaxb-Impl. Поэтому я попытался добавить в pom.xml в соответствии с https://winterbe.com/posts/2018/08/29/migrate-maven-projects-to-java-11-jigsaw/ что не удалось. Я восстановил pom.xml и изменил в соответствии с пакетом Java 11, javax.xml.bind не существует, что также не удалось.
Это для того сервера, который менее популярен. Но Tomee 7.1.0 основан на Tomcat 8.5, который должен быть гораздо более популярным. Я думаю, что проблема останется прежней.
Совет ценится, и я думаю, что многие люди должны иметь такую же проблему.
1 ответ
Попробуйте обновить ваш Tomcat/ Tomee до последней версии или понизить версию Java, поскольку несовместимые версии, как правило, запускают эти NoSuchMethod/NoSuchFile
исключения.
Возможно, одна технология зависит от определенной другой технологии и знает об определенной версии API, но вы пытаетесь использовать более высокую версию API, которая может быть совершенно другой.
Другая возможность состоит в том, что tomee еще не готов работать с java 11 (но это кажется довольно маловероятным).