2011-08-28 3 views
2

나는 Guice Servlet에서 servlet-name을 사용하여 필터 매핑을 수행하는 방법은 무엇입니까? 내 web.xml에

<filter> 
    <filter-name>authFilter</filter-name> 
    <filter-class>com.mystuff.AuthFilter</filter-class> 
</filter> 

<filter-mapping> 
    <filter-name>authFilter</filter-name> 
    <servlet-name>requestFactoryServlet</servlet-name> 
</filter-mapping> 

<!-- Servlets --> 
<servlet> 
    <servlet-name>requestFactoryServlet</servlet-name> 
    <servlet-class>com.google.web.bindery.requestfactory.server.RequestFactoryServlet</servlet-class> 
    <init-param> 
     <param-name>symbolMapsDirectory</param-name> 
     <!-- You'll need to compile with -extras and move the symbolMaps directory 
      to this location if you want stack trace deobfuscation to work --> 
     <param-value>WEB-INF/classes/symbolMaps/</param-value> 
    </init-param> 
</servlet> 

<servlet-mapping> 
    <servlet-name>requestFactoryServlet</servlet-name> 
    <url-pattern>/gwtRequest</url-pattern> 
</servlet-mapping> 

을 가지고 있고 나는 이것이 web.xml을 구성보다는 Guice 서블릿 구성을 사용하도록 변환을 시도하고있다.

Guice에서와 동일한 기능을 수행하는 방법을 알아낼 수 없습니다. 특정 서블릿이 아닌 패턴을 필터링하는 방법에 대한 예제 만 볼 수 있습니다.

<listener> 
    <listener-class>xxx.GuiceServletConfig</listener-class> 
</listener> 

을 그리고이 리스너 구현 :

답변

6

은 web.xml에있는 Guice 리스너를 정의, 감사

public class GuiceServletConfig extends GuiceServletContextListener { 

    @Override 
    protected Injector getInjector() { 
     return Guice.createInjector(new ServletModule() { 

      @Override 
      protected void configureServlets() { 
       Map<String, String> params = new HashMap<String, String>(); 
       params.put("symbolMapsDirectory", "WEB-INF/classes/symbolMaps/"); 
       serve("/gwtRequest").with(RequestFactoryServlet.class, params); 


      } 

     }); 
    } 

} 
+0

좋아요, 그냥이 정보를 찾고! –

+0

실제로 샘플이 완료되지 않았습니다.이 질문의 대상인 서블릿에 authFilter가 매핑되어 있지 않습니다. 나는 아직도 그런 대답을 찾고있다 ... – glory1

관련 문제