Java 带有嵌入式码头的泽西岛&x2B;置换后过滤器

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.

根据文档,我正在使用带有嵌入式码头的Jersey。到目前为止,这一切都很好。我现在要添加的是在这个配置中使用PostReplaceFilter

通常在web.xml中这样做

    <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交互的方向上进一步挖掘,所以我最终找到了解决方案。解决方案在问题的末尾。