仅使用注解是否可以设置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>
...
Java
@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应用程序?