猿问

如何仅使用注释设置JAX-RS应用程序(没有web.xml)?

是否可以仅使用注释设置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 {

    ...

}

后者似乎坚持认为Application将是Servlet的子类(例外不会留下任何猜测)


java.lang.ClassCastException: org.foo.rest.MyApplication cannot be cast to javax.servlet.Servlet

问题


为什么web.xml定义有效,但注释没有?有什么不同?


有没有办法使它工作,例如有一个没有web.xml的JAX-RS应用程序?


江户川乱折腾
浏览 707回答 3
3回答

慕运维8079593

似乎所有我需要做的就是这个(Servlet 3.0及以上版本)@ApplicationPath("/*")public class MyApplication extends Application {&nbsp; &nbsp; ...}并且显然不需要web.xml配置(在Tomcat 7上试过)
随时随地看视频慕课网APP

相关分类

Java
我要回答