[英]Testing Spring Framework 4 with Servlet 2.5
我在使用Servlet 2.5讓Spring Framework 4與我現有的項目一起工作時遇到了問題。 我的web項目實際運行正常,但我的測試用例失敗,它是由MockHttpServletRequest
引起的,它拋出了這個異常: -
java.lang.NoClassDefFoundError: javax/servlet/AsyncContext
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
我嘗試添加任一依賴項,但我會得到其他與Servlet 3.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>
基於Spring Framework網站,它可以與Servlet 2.5一起使用。 但是, Spring 4的MockHttpServletRequest
似乎依賴於Servlet 3.0。
我該如何解決這個問題? 謝謝。
將spring-test的依賴項限制為4之前的版本,如spring-test-3.2。
我不知道Spring-4放棄了對Servlet-2.5的支持。 3.9測試改進說:
從Spring 4.0開始,org.springframework.mock.web包中的模擬集現在與Servlet 3.0兼容。
我不明白“與servlet-3兼容”意味着刪除了servlet-2.5支持。 如果它是故意的,它至少應該進入參考文檔。 因此,甚至可能值得提交一個關於它的錯誤( SPR-11292 )。
但等待有3.4個Java EE 6和7 :
Java EE版本6或更高版本現在被認為是Spring Framework 4的基線,JPA 2.0和Servlet 3.0規范特別相關。[...]可以將Spring應用程序部署到Servlet 2.5環境中。 但是,盡可能推薦使用Servlet 3.0+。
所以我認為這符合文檔中提到的資格。
更新: Spring 4.0.1參考文檔現在更清楚Mocks:
強烈建議使用Servlet 3.0+,這是Spring的測試和模擬包中的先決條件,用於開發環境中的測試設置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.