gpt4 book ai didi

java - 带有嵌入式 Jetty + PostReplaceFilter 的 Jersey

转载 作者:行者123 更新时间:2023-11-30 11:50:00 25 4
gpt4 key购买 nike

根据文档 http://wiki.eclipse.org/Jetty/Tutorial/Embedding_Jetty,我正在使用带有嵌入式 Jetty 的 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>

但是使用嵌入式 Jetty 我没有 web.xml。我尝试像这样以编程方式设置过滤器

    ServletContextHandler sch = new ServletContextHandler(server, "myapp");

sch.setInitParameter("com.sun.jersey.spi.container.ContainerRequestFilters", "com.sun.jersey.api.container.filter.PostReplaceFilter");

但这并没有显示出任何效果。谁能阐明如何使用 Java 代码安装 PostReplaceFilter?

提前致谢


我好像漏提了一个重要事实,那就是我正在使用 Google Guice。因此,没有我可以设置初始化参数的 ServletHolder。相反,我最终可以在 http://code.google.com/p/google-guice/wiki/ServletRegexKeyMapping 的 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);

最佳答案

您应该在用于注册 Jersey servlet 的 ServletHolder 实例上使用 setInitParameter() 来设置它。

关于java - 带有嵌入式 Jetty + PostReplaceFilter 的 Jersey,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8155271/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com