Я использую Джерси со встроенной пристанью в соответствии с документацией http://wiki.eclipse.org/Jetty/Tutorial/Embedding_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");
Но это не показывает никакого эффекта. Может кто-нибудь пролить свет на то, как установить PostReplaceFilter с использованием кода Java?
Заранее спасибо
Похоже, я упустил упомянуть один важный факт: я использую Google Guice. Поэтому нет ServletHolder, где я мог бы установить параметры инициализации. Вместо этого я наконец смог найти ответ в документации Guice по номеру http://code.google.com/p/google-guice/wiki/ServletRegexKeyMapping в разделе «Параметры инициализации». Так что для 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);