2013-08-10 3 views
0

나는 운이없는 저지와 함께 간단한 필터를 사용하려고합니다. 내 필터 :왜 Jersey의 간단한 필터가 작동하지 않습니까?

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 방법을 기대하고있다 내 사이트를 방문 할 때마다 실행하여 내 페이지를 반환하십시오. 대신에 필터에서 로그를 가져오고 브라우저에서 index.jsp 환영 파일에 액세스하려고하면 HTTP Status 404 - Not Found을 얻습니다. 내가 뭘 잘못하고 있니?

+0

사실입니다. 내 JAX-RS API는/my.page/resources/* 경로에 있습니다. 그리고 환영 파일은'/ my.page/index.jsp'에 있습니다. 힌트를 주셔서 감사합니다. 아직 확인해 드리겠습니다. – flyer

+0

당신은 천만에요. 필터에 대한 'url-pattern'을 정정하는 것은 트릭을 수행해야합니다. 그것이 효과가 있다면 알려주십시오. –

+0

Yesss! 나는 '/resources/*'을 넣었고 필요한 경우 작동합니다. 하지만 흠. 나는 저지가 나의 전체 내용에 대한 통제권을 얻게 될 것으로 생각합니다. 나쁜 가정. – flyer

답변

0

Jersey를 통한 검색 요청에 대한 JAX-RS 매핑이 /services/* 일 수 있습니다. 따라서 Jersey가 처리하도록 구성되지 않은 요청을 필터링하려고합니다. /* 더 많은 URL 집합과 일치합니다.

관련 문제