Ada*_*dam 8 java spring tomcat maven docker
在Tomcat9上启动我的应用程序时遇到的特定错误。春季版本:5.1.5。
SEVERE: Error configuring application listener of class [org.springframework.web.context.request.RequestContextListener]
java.lang.NoClassDefFoundError: javax/xml/ws/WebServiceRef
关于此错误,有多个答案都建议添加Maven依赖项。我添加了以下依赖项:
我的构建路径:
该WebServiceRef班是在Package Explorer中找到:
在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文件,这些文件被复制到WEB-INF / lib下的最终.war版本中。这里有4个新的Maven依赖项及其版本,但是也可能有重复的.jar文件。
更新2: 直接将下颚API jar复制到我的Tomcat Classpath中解决了运行时错误...因此,该应用程序现在正在启动,但是当实际部署.war文件时,我将如何克服此问题?
这个问题归结为 Docker Desktop (Windows) 干扰 Tomcat,特别是 Tomcat 的管理端口8006,这迫使我更改端口号以允许 Tomcat 启动(例如从8006 更改为 8007 )。我曾经有一个旧的 Tomcat 容器,当我的计算机通过 Docker Desktop 启动时,这个容器可能已被启动,而我却没有意识到。
假设您的 pom.xml 具有必要的依赖项,则已完成修复问题的步骤。
我认为在大多数情况下,这个问题将通过使用所需的依赖项更新 pom.xml 来解决,如此处所述。就我而言,这完全是环境问题,并且出于某种原因,Docker Desktop 阻止 Tomcat 在运行时访问jams-api-2.3.1.jar文件。Tomcat 无法访问此 .jar 文件已通过上述问题中的“更新 2”得到确认。
| 归档时间: |
|
| 查看次数: |
390 次 |
| 最近记录: |