使用RequestDispatcher.forward时调用Jersey 2.x过滤器链

时间:2015-04-20 14:36:44

标签: java servlets jax-rs jersey-2.0 forward

有没有人知道如何在使用RequestDispatcher.forward()时在Jersey-2.x应用程序中正确处理过滤器?

RequestDispatcher dispatcher=pCtx.getRequestDispatcher("/app2");    
dispatcher.forward(request, response);

当我在使用Jersey-2.5 +的两个webapp之间进行转发时,正在重定向到的webapp包含请求过滤器。在执行转发时应该调用它们(比如直接请求应用程序时),但不是。

有几个帖子做了大纲,将<filter-mapping>元素与web.xml中的<dispatcher>标记一起使用,例如here。但这对我来说就像javax servlet过滤器一样,如果可能的话,我不知道如何包含它。

有没有办法用Jersey-2.x过滤器实现相同的目标?

更新

我的ContainerRequestFilter是后匹配过滤器,因为它们未使用@PreMatching进行注释

1 个答案:

答案 0 :(得分:0)

正如我发现的那样,RequestFilter实际上是被调用的。我没有意识到这是错误的。真正没有被调用的是tomcat容器认证,如realm。但这对我来说很清楚,因为当任何应用程序处理请求时我们已经通过了tomcat层。