¿Es posible configurar una aplicación JAX-RS usando solo anotaciones? (usando Servlet 3.0 y JAX-RS Jersey 1.1.0)
Lo intenté y no tuve suerte. web.xml
Parece necesario usar algunos .
Configuración A (funcionando, pero tiene configuración 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>
...
Java
@ApplicationPath("/")
public class MyApplication extends Application {
...
}
Configuración B (no funciona, se lanzó una excepción)
@ApplicationPath("/")
@WebServlet("/*") // <--
public class MyApplication extends Application {
...
}
Este último parece insistir en que la Aplicación será una subclase de Servlet (la excepción no deja conjeturas)
java.lang.ClassCastException: org.foo.rest.MyApplication cannot be cast to javax.servlet.Servlet
Preguntas
¿Por qué funcionó la definición web.xml pero no la anotación? ¿Cual es la diferencia?
¿Hay alguna manera de que funcione, por ejemplo, tener una aplicación JAX-RS sin web.xml?