【问题标题】:JerseyTest doesn't recognize @WebFilterJerseyTest 无法识别@WebFilter
【发布时间】:2014-12-06 04:01:12
【问题描述】:

我尝试使用 jersey-test-framework-provider-grizzly2 在 Jersey REST Servlet 上创建 JerseyTest。

测试从 grizzly 中的 servlet 请求正确的内容。

但是当启动 servlet 生产时,有一个 HTTPBasicAuth。 Auth 使用 @WebFilter("/*") org.apache.shiro.web.servlet.ShiroFilter 完成。

在 JerseyTest 期间没有请求 Auth。 所以我的结论是 @WebFilter 注释无法识别。 JerseyTest 是否只测试应用程序中的资源? 如何让 WebFilters 被识别?

谢谢。

【问题讨论】:

    标签: java servlets jersey junit4 jersey-2.0


    【解决方案1】:

    我想我可以回答自己;-)

    这是一个 JerseyTest 框架,没有“FullAppWithJerseyTest”框架。

    我现在已经实现了类似 ServletJerseyTest 扩展 JerseyTest。 它使用 org.glassfish.jersey.test.external.ExternalTestContainerFactory.class 和 setUp() 包含启动一个 servlet 容器并安装最新构建的 WAR。

    测试针对此容器运行。在 tearDown() 中容器被停止并且安装的 WAR 被删除。

    嵌入式 Tomcat 有 API 自行寻找空闲 TCP 端口,并且 TestProperties.CONTAINER_PORT 设置为选择的端口。

    现在测试按预期运行...

    【讨论】:

    • 如果您知道更好、更通用的解决方案,而无需假设构建系统来了解应该测试的 WAR...欢迎您的回答!
    猜你喜欢
    • 1970-01-01
    • 2018-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-18
    • 2013-04-19
    • 2019-01-28
    • 2017-08-10
    相关资源
    最近更新 更多