Jersey 1 中的ServletContainer.FEATURE_FILTER_FORWARD_ON_404的 Jersey 2 等价物是什么?
ServletContainer.FEATURE_FILTER_FORWARD_ON_404定义为:
如果为 true 并且从运行时或应用程序返回没有实体主体的 404 响应,则运行时将请求转发到过滤器链中的下一个过滤器
请解释你为什么投反对票。如果您不解释问题所在,我将无法改进问题/答案。
Jersey 1 中的ServletContainer.FEATURE_FILTER_FORWARD_ON_404的 Jersey 2 等价物是什么?
ServletContainer.FEATURE_FILTER_FORWARD_ON_404定义为:
如果为 true 并且从运行时或应用程序返回没有实体主体的 404 响应,则运行时将请求转发到过滤器链中的下一个过滤器
请解释你为什么投反对票。如果您不解释问题所在,我将无法改进问题/答案。
您应该使用的属性是ServletProperties.FILTER_FORWARD_ON_404和ServletProperties.FILTER_STATIC_CONTENT_REGEX。
ServletProperties.FILTER_FORWARD_ON_404定义为:
如果设置为 true 并且从运行时或应用程序返回没有实体主体的 404 响应,则运行时会将请求转发到过滤器链中的下一个过滤器。
ServletProperties.FILTER_STATIC_CONTENT_REGEX定义为:
如果设置,则正则表达式用于将传入的 servlet 路径 URI 与某些网页内容(例如静态资源或由底层 servlet 引擎处理的 JSP)进行匹配。
@gili 是正确的。有关 jersey 2.x 配置的完整运行示例,请查看我在 github 上的简单玩具项目:
https://github.com/depsypher/flapjack
本质上,您必须将 Jersey ServletContainer 作为过滤器运行,并将jersey.config.servlet.filter.forwardOn404
属性作为 init 参数提供。
这是使用 Spring Boot 进行设置的示例;web.xml 等价物应该很明显:
FilterRegistrationBean filter = new FilterRegistrationBean(new ServletContainer());
filter.addInitParameter("jersey.config.servlet.filter.forwardOn404", "true");