簡體   English   中英

使用Servlet 2.5測試Spring Framework 4

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM