让4使用Servlet2.5处理我现有的项目有问题。我的web项目实际上运行良好,但是我的测试用例失败了,它是由MockHttpServletRequest引起的,它引发了这个异常:-
java.lang.NoClassDefFoundError: javax/servlet/AsyncContext
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)我尝试添加任何一个依赖项,但是我会得到其他Servlet3.0相关的异常:-
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>6.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>servlet-api</artifactId>
<version>3.0.20090124</version>
<scope>test</scope>
</dependency>基于网站,据说它可以使用Servlet2.5。然而,MockHttpServletRequest似乎依赖Servlet3.0前进。
我该如何解决这个问题?谢谢。
发布于 2014-01-07 17:48:37
将spring-test的依赖项限制在4之前的版本,如spring-test-3.2.
我不知道Spring-4放弃了对Servlet2.5的支持。3.9 Testing Improvements说:
从Spring4.0开始,org.springframework.mock.web包中的一组模拟与Servlet3.0兼容。
我不明白“兼容servlet-3”意味着放弃servlet-2.5支持。如果是故意的,至少应该进入参考文件。因此,它甚至可能值得提交一个bug (SPR-11292)。
但是等一下,有3.4 Java EE 6 and 7
Java 6或更高版本现在被认为是Spring 4的基线,JPA2.0和Servlet3.0规范特别相关.可以将Spring应用程序部署到Servlet2.5环境中;但是,如果可能,建议使用Servlet 3.0+。
因此,我认为这符合文档中提到的内容。
更新:--Spring4.0.1参考文档--现在更清楚了:
Servlet 3.0+是强烈推荐的,也是开发环境中用于测试设置的Spring测试和模拟包中的先决条件。
https://stackoverflow.com/questions/20978235
复制相似问题