@Path问题使用Jersey 2.x bundle

时间:2016-11-08 07:10:48

标签: java jax-rs web.xml jersey-2.0 jdeveloper

我正在尝试使用JAXRS和Jersey 2.x包来实现基本的hello应用程序,但是遇到了@Path的问题。当我使用Jersey 1.x库@Path以及hello world应用程序正常工作时。

我遵循的步骤:

  1. Jdev 11g第2版
  2. 创建独立Java项目 - >包括Jersey 2.x libs(查看下图)
  3. 使用注释@Path

    创建了一个java类
    import javax.ws.rs.GET;
    import javax.ws.rs.Path;
    
    @Path("/hello")
    public class TestJerseyBundle {
        public TestJerseyBundle() {
            super();
        }
    
        @GET
        public String getStatus(){
            return "hello Jersey 2.x";
        }
    }
    
  4. 现在@Path中有一个警告。当我们将光标放在@Path上时,它会显示"在web.xml"

    中未配置jersey servlet
    1. 借助代码辅助,它创建了默认的web.xml
    2. 请查看以下图片

      默认情况下,它配置了com.sun.jersey.spi.container.servlet.ServletContainer,它是Jersey 1.x包的一部分。但在我的应用程序中,我使用的是Jersey 2.x.所以我用以下信息修改了web.xml:

      图像

      中的默认和修改的web.xml

      Default and modified web.xml in Image

      现在,servlet-class元素下的警告符号已经消失。

      1. 在web.xml更改之前和之后,我可以在@Path

      2. 中看到相同的问题
      3. 我尝试使用@Path问题部署我的应用程序:因此应用程序已成功部署

      4. 当我点击URL时,如:localhost:port / RestAppJersey-RestAppOD-context-root / hello则抛出404错误。

        有人可以建议如何使用Jersey 2.x libs在Jdev 11g第2版中开发RESTful Web服务。(我尝试使用最新版本的lib版本,但仍然面临同样的问题)。

        默认情况下,为什么要在web.xml中配置com.sun.jersey.spi.container.servlet.ServletContainer?

        由于

1 个答案:

答案 0 :(得分:0)

您有url-pattern /jersey/*。因此,您需要成为您尝试访问的网址的一部分。

localhost:port/RestAppJersey-RestAppOD-context-root/jersey/hello

就你的IDE问题而言,我不知道。我不使用那个IDE