小编Ale*_*xey的帖子

ClassNotFoundException:如何查找Java中的依赖冲突

在使用 Atmosphere servlet 的测试 WebSocket 应用程序中,我收到以下异常:

SEVERE: Servlet.service() for servlet AtmosphereServlet threw exception
java.lang.ClassNotFoundException: javax.servlet.AsyncContext
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1645)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1491)
    at org.atmosphere.cpr.AtmosphereServlet.doPost(AtmosphereServlet.java:191)
    at org.atmosphere.cpr.AtmosphereServlet.doGet(AtmosphereServlet.java:177)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
Run Code Online (Sandbox Code Playgroud)

从下面的帖子中我了解到这可能是由 Servlet 容器版本早于 Servlet 3.0 引起的:

ClassNotFoundException:Jetty hello world 中的 javax.servlet.AsyncContext

ClassNotFoundException:eclipse 中 Jetty hello world 中的 javax.servlet.AsyncContext

Grails 项目 - Servlet 调用 - ClassNotFoundException:javax.servlet.AsyncContext

然而应用程序运行在Tomcat7上,并且在pom.xml中添加了以下依赖项:

<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.1.0</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

我检查了项目中的所有其他依赖项,但无法找到与 Servlet 相关的任何其他内容。我仍然遇到例外。

问题:如何找到应用程序实际使用的jar文件?如何找到导致使用旧版本的依赖关系?

java tomcat servlets maven javax

5
推荐指数
1
解决办法
2581
查看次数

标签 统计

java ×1

javax ×1

maven ×1

servlets ×1

tomcat ×1