2016-12-09 16 views
0

resteasy 3.0.19, guice 4.0 및 tomcat 7.0.73을 함께 사용하려고하는데 404 응답 이외의 것을 얻으려고합니다. 문제를 해결하기 위해, 방금 수정 한 guice-hello 예제를 얻으려고했습니다. 약간 수정되었습니다. 시작시 HelloModuleHelloResource이 선택되어 등록되었습니다. 내가 http://localhost:8080/people.service/hello/test에 액세스하려고 할 때 resteasy + tomcat 서블릿 컨테이너 3.0 + guice not working

23:09:29.875 [RMI TCP Connection(3)-127.0.0.1] INFO org.jboss.resteasy.plugins.guice.i18n - RESTEASY011005: found module: org.jboss.resteasy.examples.guice.hello.HelloModule 
23:09:30.169 [RMI TCP Connection(3)-127.0.0.1] INFO org.jboss.resteasy.plugins.guice.i18n - RESTEASY011020: registering factory for org.jboss.resteasy.examples.guice.hello.HelloResource 
[2016-12-08 11:09:30,250] Artifact Gradle : abbvie.ir.pikm : people.service.war (exploded): Artifact is deployed successfully 
[2016-12-08 11:09:30,250] Artifact Gradle : abbvie.ir.pikm : people.service.war (exploded): Deploy took 3,172 milliseconds 

그러나, 나는 바람둥이에서 404 페이지를 얻을. 참고로 한가지 다른 점은 http://localhost:8080/garbage에 액세스하면 404 상태를 다시 얻을 수 있지만 404 상태 페이지를 얻지 못하는 것입니다. 단지 빈 상태 여야합니다.

이것은 3.0 서블릿 컨테이너이므로 내 web.xml에 디스패처 서블릿을 정의하지 않습니다.

<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 
     version="3.0" metadata-complete="true"> 

    <display-name>People Service</display-name> 

    <context-param> 
     <param-name>resteasy.guice.modules</param-name> 
     <param-value> 
      org.jboss.resteasy.examples.guice.hello.HelloModule 
     </param-value> 
    </context-param> 

    <listener> 
     <listener-class> 
      org.jboss.resteasy.plugins.guice.GuiceResteasyBootstrapServletContextListener 
     </listener-class> 
    </listener> 

</web-app> 

다른 모든 클래스가 guice - 안녕하세요 예에서 불과 기본 것들, 즉 HelloModule, HelloResource, 손님 맞이 도우미 및 DefaultGreeter 있습니다 : 그것은 단지처럼 보인다. 기본 발송자가 정의 된대로 요청을 처리하지 않는 것처럼 보입니다. 이 문제를 해결하기위한 아이디어가 있습니까? RESTEasy가 코드를 통해 스테핑

답변

0

, 나는 문제가 정의 된 Application 클래스가 존재하지 않을 경우, 서블릿 3.0 컨테이너를 사용하는 ResteastServletInitializer에서, 다음이 HttpServlet30Dispatcher의 구성을 생략한다는 것을 알았다. handleNoApplicationClass 메서드가 있지만이 시점에서는 불완전한 것으로 나타납니다.

package abbvie.ir.pikm.people.service; 

import javax.ws.rs.ApplicationPath; 
import javax.ws.rs.core.Application; 

@ApplicationPath("/api") 
public class PeopleServiceApplication extends Application { 
} 
:

이 솔루션은 다음과 같은 클래스를 정의하는 것이 었습니다