【发布时间】:2017-05-08 06:57:34
【问题描述】:
在使用 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)
从以下帖子中,我了解到这可能是由早于 Servlet 3.0 的 Servlet 容器版本引起的:
ClassNotFoundException: javax.servlet.AsyncContext in Jetty hello world
ClassNotFoundException: javax.servlet.AsyncContext in Jetty hello world in eclipse
Grails project - Servlet call - 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>
我检查了项目中的所有其他依赖项,但找不到与 Servlet 相关的任何其他内容。我仍然遇到异常。
问题:如何找到应用实际使用的jar文件?如何找到导致使用旧版本的依赖项?
【问题讨论】:
标签: java maven tomcat servlets javax