Java 带有嵌入式码头的泽西岛&x2B;置换后过滤器
根据文档,我正在使用带有嵌入式码头的Jersey。到目前为止,这一切都很好。我现在要添加的是在这个配置中使用PostReplaceFilter 通常在web.xml中这样做Java 带有嵌入式码头的泽西岛&x2B;置换后过滤器,java,jetty,jersey,Java,Jetty,Jersey,根据文档,我正在使用带有嵌入式码头的Jersey。到目前为止,这一切都很好。我现在要添加的是在这个配置中使用PostReplaceFilter 通常在web.xml中这样做 <init-param> <param-name>com.sun.jersey.spi.container.ContainerRequestFilters</param-name> <param-value>com.sun.jersey.
<init-param>
<param-name>com.sun.jersey.spi.container.ContainerRequestFilters</param-name>
<param-value>com.sun.jersey.api.container.filter.PostReplaceFilter</param-value>
</init-param>
ServletContextHandler sch = new ServletContextHandler(server, "myapp");
sch.setInitParameter("com.sun.jersey.spi.container.ContainerRequestFilters", "com.sun.jersey.api.container.filter.PostReplaceFilter");
但这并没有显示出任何效果。有人能解释一下如何使用Java代码安装PostReplaceFilter吗
提前谢谢
我似乎没有提到一个重要的事实,那就是我正在使用GoogleGuice。因此,没有ServletHolder可以在其中设置初始化参数。相反,我最终可以在“初始化参数”一节中的Guice文档中找到答案。因此,对于PostReplaceFilter,如下所示:
Map<String, String> params = new HashMap<String, String>();
params.put("com.sun.jersey.spi.container.ContainerRequestFilters", "com.sun.jersey.api.container.filter.PostReplaceFilter");
serve("/*").with(GuiceContainer.class, params);
Map params=newhashmap();
params.put(“com.sun.jersey.spi.container.ContainerRequestFilters”,“com.sun.jersey.api.container.filter.PostReplaceFilter”);
使用(GuiceContainer.class,params)提供(“/*”);
您应该在用于注册Jersey servlet的ServletHolder实例上使用setInitParameter()进行设置。因为我使用的是Guice,所以没有ServletHolder可以在其中设置此类初始化参数。但无论如何还是要感谢你,因为你的回答至少让我在Guice如何与Jetty+Jersey交互的方向上进一步挖掘,所以我最终找到了解决方案。解决方案在问题的末尾。