Guice 3.0-rc2 (maven central에서)와 서블릿 확장을 사용하도록 servlet-project를 마이그레이션하려고합니다. 이미 동일한 문제가있는 다른 프로젝트를 이미 마이그레이션했습니다.Guice Servlet Extension에서 context.getNamedDispatcher를 사용하는 방법
Guice가 web.xml
을 기본적으로 쓸모 없게 만들었으므로 서블릿 이름을 정의 할 곳이 없습니다. 코드베이스는 ServletContext#getNamedDispatcher("name")
을 매우 많이 사용하며 가능한 한 조금 변경하고 싶습니다. 첫 번째 코드베이스는 getNamedDispatcher
을 한 번 사용했기 때문에 해결할 수있었습니다.
해당 서블릿은 어떤 경로도 듣지 않으므로 getRequesetDispatcher
을 사용하면 안됩니다.
누구에게 의견이 있습니까?
죄송합니다. 저에게 도움이되지 않습니다. Servlet의 이름을 결정하거나 할당하는 방법이 필요합니다. Servlet의 이름도 일부 라우팅 규칙 엔진의 일부이기 때문에 특별히 신경 쓰지 않습니다. – msung
@msung : 서블릿과 같은 필터를 통해 요청을 라우팅하는 것과 관련이 있습니다. 그렇지 않다면, 하나의 옵션은 web.xml에서와 같은 이름을 사용하는'MapBinder' (멀티 바인딩 확장에서)를 사용하여 서블릿을 바인딩 한 다음'RequestDispatcher'를 사용하지 않고'Map'에서 찾아 볼 수 있습니다 . 그렇지 않으면, 당신이 원하는 것은 아마 guice-servlet이하도록 설계된 범위를 벗어나는 것일 것입니다. – ColinD
이전에 사용 된 서블릿 이름을 해당 클래스에 매핑하여이 문제를 해결했습니다. 내가 말할 수있는 한, 서블릿을 찾는다. 당신의 예제에서 메소드 삽입을 사용하는 특별한 이유가 있습니까? 서블릿을 직접 주입하거나 getInstance (YourServlet.class)가 작동하지 않습니까? – msung