Как исправить ошибки во время выполнения JAVAX на JDK11 Tomcat9 Spring Application

Адам:

Ошибка конкретного я столкнулся при запуске моего приложения на Tomcat9. версия Spring: 5.1.5.RELEASE:

SEVERE: Error configuring application listener of class [org.springframework.web.context.request.RequestContextListener] java.lang.NoClassDefFoundError: javax/xml/ws/WebServiceRef

Есть несколько ответов на эту ошибку, что все предполагают добавление Maven зависимостей. Я добавил эти зависимости:

pom.xml

Мой путь сборки:

введите описание изображения здесь

WebServiceRefКласс находится в пакете исследователя:

введите описание изображения здесь

Это показывает ошибки в консоли при запуске приложения на Tomcat9. Вот несколько из трассировки стека:введите описание изображения здесь

SEVERE: Error configuring application listener of class [org.springframework.web.context.request.RequestContextListener] java.lang.NoClassDefFoundError: javax/xml/ws/WebServiceRef at org.apache.catalina.core.DefaultInstanceManager.populateAnnotationsCache(DefaultInstanceManager.java:303) ...more stuf.... java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:355) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:495)

Любая помощь или предложения будут оценены!

Обновление 1: Вот некоторые .jar файлы , которые копируются в окончательный .war сборки под WEB-INF / Lib. 4 новых зависимостей Maven и их версии здесь, но есть также возможные дублирующие файлы .jar.

введите описание изображения здесь

Update 2: Copying the jaws-api jar directly into my Tomcat Classpath resolved the runtime error... So the app is launching now, but how would I overcome this issue when actually deploying the .war file?

введите описание изображения здесь

Adam :

This issue came down to Docker Desktop (Windows) interfering with Tomcat and specifically Tomcat's admin port 8006, which forced me to change the port number to allow Tomcat to launch (from 8006 to 8007 for example). I had an old Tomcat container at one point in time, and this may have been fired up when my computer started via Docker Desktop without me realizing it.

Steps completed to fix the issue assuming your pom.xml has the necessary dependencies.

  1. Stop Docker Desktop
  2. Use the latest JDK11 build and update JAVA_HOME as needed
  3. Восстановление порта администратора сервера по умолчанию Tomcat для 8006
  4. Переиздавать / Перезапустите сервер Tomcat

Я думаю , что в большинстве случаев эта проблема будет решена , как описано здесь , с обновлением pom.xml с необходимыми зависимостями. В моем случае это был полностью экологической и по какой - то причине Docker Desktop предотвращен Tomcat доступа к Челюсти-апи-2.3.1.jar файла во время выполнения. Неспособность Tomcat для доступа к этой .jar файла была подтверждена через мой «Update 2» в вопросе выше.

Мой pom.xml закончился только нуждаясь следующими пунктами: введите описание изображения здесь

рекомендация

отhttp://43.154.161.224:23101/article/api/json?id=167421&siteId=1