Я стараюсь использовать простой фильтр с Джерси, но без везения. Мой фильтр:Почему мой простой фильтр в Джерси не работает?
public class JerseyHelloFilter implements ContainerResponseFilter {
@Override
public ContainerResponse filter(ContainerRequest creq, ContainerResponse cresp) {
System.out.println("JerseyHelloFilter : filter");
return cresp;
}
}
Мой web.xml:
<servlet>
<servlet-name>Log Filter</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>com.sun.jersey.spi.container.ContainerResponseFilters</param-name>
<param-value>my.package.JerseyHelloFilter</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>Log Filter</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
Мои JSP-страница: /my.page/index.jsp
Мои JAX-RS услуги: /my.page/resources/*
С выше коде я ожидаю метод filter
воли выполняться с каждым вызовом на мой сайт и возвращать мою страницу. Но вместо этого я получаю журнал из фильтра и: HTTP Status 404 - Not Found
, когда пытаюсь получить доступ к моему приветствующему файлу index.jsp в браузере. Что я делаю неправильно?
Это правда. Мой JAX-RS API находится в пути '/ my.page/resources/*'. И мой файл приветствия находится только в '/ my.page/index.jsp'. Спасибо за подсказку. Я проверю это еще. – flyer
Добро пожаловать. Исправление «url-pattern» для фильтра должно делать трюк. Сообщите нам, если это сработает. –
Yesss! Я помещаю '/resources/* url-pattern>' и работает так, как мне нужно. Но хм. Я думаю, я ожидал, что Джерси получит контроль над всем моим содержанием. Плохое предположение. –
flyer