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)