2013-12-11 2 views
1

다음 코드는 내 REST 서비스를 실행하지만 내 서블릿 필터는 결코 호출되지 않습니다. 어떤 아이디어?Grizzly Embedded Server + 저지 서비스 + 서블릿 필터

WebappContext webappContext = new WebappContext("grizzly web context", ""); 

FilterRegistration testFilterReg = webappContext.addFilter("TestFilter", TestFilter.class); 
testFilterReg.addMappingForUrlPatterns(EnumSet.allOf(DispatcherType.class), "/*"); 

ResourceConfig rc = new ResourceConfig().register(MyResource.class); 
HttpServer httpServer = GrizzlyHttpServerFactory.createHttpServer(URI.create("http://localhost:8080/myapp/"), rc); 
webappContext.deploy(httpServer); 
+0

당신이 사용중인 뉴저지/그리즐리의 버전을하시기 바랍니다 확인할 수 있습니까? – rlubke

+0

저지 2.4.1. Grizzly 2.3.3 – user2684301

답변

7

요약하면 위에서 설명한 방식으로 ResourceConfig를 등록하면 Grizzly Servlet 컨테이너를 효과적으로 우회합니다. 서블릿 필터를 활용하기 위해

, 당신은 다음과 같이해야합니다

WebappContext webappContext = new WebappContext("grizzly web context", ""); 

    FilterRegistration testFilterReg = webappContext.addFilter("TestFilter", TestFilter.class); 
    testFilterReg.addMappingForUrlPatterns(EnumSet.allOf(DispatcherType.class), "/*"); 

    ServletRegistration servletRegistration = webappContext.addServlet("Jersey", org.glassfish.jersey.servlet.ServletContainer.class); 
    servletRegistration.addMapping("/myapp/*"); 
    servletRegistration.setInitParameter("jersey.config.server.provider.packages", "com.example"); 


    HttpServer server = HttpServer.createSimpleServer(); 
    webappContext.deploy(server); 
    server.start(); 
+0

제 그리즐리 질문을 참조하십시오 : http://stackoverflow.com/questions/35123194/jersey-2-render-swagger-static-content-correctly-without-trailing-slash – DerekY