根據文檔http://wiki.eclipse.org/Jetty/Tutorial/Embedding_Jetty,我使用澤西島和嵌入式碼頭。迄今爲止,這工作得很好。我現在要添加的是在此配置中使用PostReplaceFilter。Jersey with embedded Jetty + 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?
在此先感謝
我看起來像我錯過了提一個重要的事實,這是我使用谷歌吉斯。因此沒有可以設置初始化參數的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);
因爲我使用的是Guice,所以沒有ServletHolder可以設置這樣的init參數。不過謝謝你,因爲你的回答至少讓我在Guice與Jetty + Jersey的互動方式上有了進一步的發掘,所以我終於找到了解決方案。 – Ecthelion
解決方案是什麼? –
解決方案在問題結束時。 –