使用Servlet 2.5测试Spring Framework 4

 手机用户2502887447 发布于 2023-02-05 13:16

我在使用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相关的异常: -


 javax
 javaee-api
 6.0
 test



  org.mortbay.jetty
  servlet-api
  3.0.20090124
  test

基于Spring Framework网站,它可以与Servlet 2.5一起使用.但是,Spring 4MockHttpServletRequest似乎依赖于Servlet 3.0.

我该如何解决这个问题?谢谢.

1 个回答
  • 将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的测试和模拟包中的先决条件,用于开发环境中的测试设置.

    2023-02-05 22:04 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有