首页 > 代码库 > Spring 4在servlet2.5上单元测试出错解决方法

Spring 4在servlet2.5上单元测试出错解决方法

今天在SpringMVC 4上单元测试出现如下错误。

java.lang.NoClassDefFoundError: javax/servlet/SessionCookieConfig    at org.springframework.mock.web.MockHttpSession.<init>(MockHttpSession.java:99)    at org.springframework.mock.web.MockHttpSession.<init>(MockHttpSession.java:89)    at org.springframework.mock.web.MockHttpSession.<init>(MockHttpSession.java:80)

servlet为2.5,Spring版本为4.1.1,tomcat 6

在网上翻了半天,终于找到原因。

Spring Reference中提到,虽然Spring4仍然支持2.5,但它的主要目标是Servlet3.0及以上版本。如果你用Spring MVC Test Framework进行测试,则必须添加

兼容Servlet3.0的jar包(即3.0以上的servlet的jar包),

解决办法:

在pom.xml中添加依赖

<dependency>            <groupId>javax.servlet</groupId>            <artifactId>javax.servlet-api</artifactId>            <version>3.0.1</version>            <scope>test</scope></dependency>

限制scope为test即可。

 参考:https://jira.spring.io/browse/SPR-11049

Spring 4在servlet2.5上单元测试出错解决方法