Grizzly Server와 함께 필터 사용 Jersey Rest Service
문제
저는 Grizzly를 사용하여 Jersey를 사용하여 개발 한 REST 서비스를 실행하기 위해 서버를 만들려고합니다. 다음을 사용하여 그리즐리 서버를 만들고 있습니다.
final String baseUri = "http://localhost:9998/";
final Map<String, String> initParams = new HashMap<String, String>();
initParams.put("com.sun.jersey.config.property.packages", "me.my.rest.package");
SelectorThread threadSelector =
GrizzlyWebContainerFactory.create(baseUri, initParams);
내가 찾은 모든 예가 제안하는 것처럼 보입니다. 이것은 괜찮습니다. 서버가 시작하여 들어오는 요청을 내 리소스 클래스로 전달할 수 있습니다.
그러나 서비스 구현에는 서블릿 필터를 사용해야합니다. 그리즐리는 필터 및 기타 유사한 서블릿 관련 구성 옵션의 정의를 ServletAdapter
수업. 내 문제는 사용할 때 필터를 정의하는 방법을 해결할 수 없다는 것입니다. com.sun.jersey.api.container.grizzly.GrizzlyWebContainerFactory
저지 통합을 제공합니다.
어떤 아이디어?
해결책
당신을 위해 뭔가가있을 것 같아요 ...
GrizzlyWebServer ws = new GrizzlyWebServer(9999);
ServletAdapter jerseyServletAdapter = new ServletAdapter();
jerseyServletAdapter.setServletInstance(new ServletContainer());
jerseyServletAdapter.addInitParameter(
"com.sun.jersey.config.property.packages", "me.my.rest.package");
jerseyServletAdapter.setServletPath("/api");
// HERE IS HOW YOU ADD A FILTER
jerseyServletAdapter.addFilter(new MyFilter(), "HibernateSessionFilter", null);
ws.addGrizzlyAdapter(jerseyServletAdapter, null);
... 저를 위해 일하고 있습니다. 나는 그것이 당신에게도 도움이되기를 바랍니다.
다른 팁
시도 했습니까?
((ServletAdapter) threadSelector.getAdapter()).addFilter()
제휴하지 않습니다 StackOverflow