相关疑难解决方法(0)

如何仅使用注释设置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>
   ...
Run Code Online (Sandbox Code Playgroud)

Java的

@ApplicationPath("/")
public class MyApplication extends Application {
    ...
}
Run Code Online (Sandbox Code Playgroud)

配置B(不工作,抛出异常)

@ApplicationPath("/")
@WebServlet("/*") // <-- 
public class MyApplication extends Application {
    ...
}
Run Code Online (Sandbox Code Playgroud)

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

java.lang.ClassCastException: org.foo.rest.MyApplication cannot be cast to javax.servlet.Servlet
Run Code Online (Sandbox Code Playgroud)

问题

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

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

java jax-rs java-ee servlet-3.0

76
推荐指数
4
解决办法
11万
查看次数

标签 统计

java ×1

java-ee ×1

jax-rs ×1

servlet-3.0 ×1