据http://jersey.java.net/nonav/apidocs/latest/jersey/jersey-test-framework/jersey-test-framework-core/com/sun/jersey/test/framework/JerseyTest.html用户二种测试容器之间可以选择:不同的泽西岛测试容器有什么区别?
- 低级别的容器不支持的servlet
- 基于Web的容器不支持servlet的
我有以下问题:
- 每种容器的优缺点是什么?例如,我假设低级容器速度更快,但缺少某种功能。
- 什么意思是低级容器不支持servlet?我认为JAX-RS是基于Servlets之上的。什么不是低级容器能够做到的?
UPDATE:
经过进一步的研究,我发现,低层次的容器更快,但他们真的没有servlet的运行。当客户端发出请求时,会构建相应的资源,并将响应传回给客户端,所有内存中。这与运行嵌入式数据库与传统的基于网络的JDBC连接相似。
没有机制提供ServletContextListener,注册servlet或过滤器。我猜测请求范围也不支持。
我的问题是,你真的可以在这些限制下测试任何有意义的东西吗?
泽西使用内存容器测试本身所以我们已经有了这个功能,而且我们只是暴露了这一点。任何不依赖于Servlet的应用程序都可以用它来进行测试(并非所有的东西都使用servlet)..所以..我真的不明白你为什么要问 - 如果它不适合你的需要,你不需要使用它。 –
@PavelBucek,我想我要求一个没有servlet可以测试的例子。你能提供一个真实世界的例子吗? – Gili
@PavelBucek,例如,“任何不依赖于Servlet的应用程序”意味着如果我正在使用内存容器测试所述方法,我将无法将HttpServletRequest作为Web服务方法的参数?我承认这一点,只是确认。 –