我已经阅读,从Java EE6 web.xml是可选的。 因此,如果没有web.xml,我怎么能告诉应用服务器使用Jersey作为JAX-RS规范的实现?
我正在玩JAX-RS,部署在Tomcat上。 这基本上是: @Path("/hello") @Produces({"text/plain"}) public class Hellohandler { @GET public String hello() { return "Hello World"; } } 有没有什么办法可以在我的JAX-RS资源中获得ServletContext ?
是否可以使用注释来设置JAX-RS应用程序? (使用Servlet 3.0和JAX-RS Jersey 1.1.0) 我试过,没有运气。 似乎需要使用一些web.xml 。 configurationA(正在工作,但有web.xmlconfiguration) 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 { … } configurationB(不工作,抛出exception) @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应用程序?