어노테이션 만 사용하여 JAX-RS 애플리케이션을 설정할 수 있습니까? (Servlet 3.0 및 JAX-RS Jersey 1.1.0 사용)
나는 시도했지만 운이 없었다. 일부 사용 web.xml
이 필요한 것 같습니다.
구성 A (작동하지만 web.xml 구성이 있음)
web.xml
...
<servlet>
<servlet-name>org.foo.rest.MyApplication</servlet-name>
</servlet>
<servlet-mapping>
<servlet-name>org.foo.rest.MyApplication</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
...
자바
@ApplicationPath("/")
public class MyApplication extends Application {
...
}
구성 B (작동하지 않음, 예외 발생)
@ApplicationPath("/")
@WebServlet("/*") // <--
public class MyApplication extends Application {
...
}
후자는 응용 프로그램이 Servlet의 하위 클래스가 될 것이라고 주장하는 것 같습니다 (예외가 추측을 남기지 않음).
java.lang.ClassCastException: org.foo.rest.MyApplication cannot be cast to javax.servlet.Servlet
질문
web.xml 정의가 작동했지만 주석이 작동하지 않은 이유는 무엇입니까? 차이점이 뭐야?
예를 들어 web.xml이없는 JAX-RS 애플리케이션을 사용하는 것과 같이 작동하도록하는 방법이 있습니까?