【问题标题】:JAX-RS with Jersey 2.22.2 + Tomcat 7.0.59 : The requested resource is not availableJAX-RS with Jersey 2.22.2 + Tomcat 7.0.59:请求的资源不可用
【发布时间】:2016-03-22 09:28:28
【问题描述】:

我已经建立了单独的 rest-model 库,当球衣做资源配置包时,似乎不起作用,它会响应请求的资源不可用。

我用过:Jersey 2.22.2 和 Tomcat 7.0.59

请在下面找到以下详细信息:

rest-model.jar (file)
  > com.company.rest.domain.* (package)
    > TestData.class (file)
      > @XmlRootElement
      > class TestData {
      >   private String str ;
      >   public TestData() {}
      >   public TestData(String str) { setStr(str); }
      >   public String getStr() { return str ; } 
      >   public void setStr(String str) { this.str = str ; }
      > }
  > com.company.rest.service.* (package)
    > TestService.class (file)
      > @Path("/test")
      > @Produces({MediaType.APPLICATION_JSON})
      > class TestService {
      >   @GET public TestData test() {
      >     return new TestData("test") ;
      >   }
      > }

Tomcat with classpath to file rest-model.jar
WebRoot (folder)
  > WEB-INF (folder)
    > web.xml (file)
      <servlet>
        <servlet-name>RestApp</servlet-name>
        <servlet-class>
          org.glassfish.jersey.servlet.ServletContainer
        </servlet-class>
        <init-param>
          <param-name>
            com.sun.jersey.config.property.packages
          </param-name>
          <param-value>
            com.company.rest.service
          </param-value>
        </init-param>
      </servlet>
      <servlet-mapping>
        <servlet-name>RestApp</servlet-name>
        <url-pattern>/rest/*</url-pattern>
      </servlet-mapping>

【问题讨论】:

  • 尝试用com.sun.jersey.spi.container.servlet.ServletContainer替换你的servlet类。

标签: java rest tomcat jersey


【解决方案1】:

用于包扫描的init-param错误。

对于 Jersey 2.XX,您需要将其配置为:

<init-param>
    <param-name>jersey.config.server.provider.packages</param-name>
    <param-value>com.company.rest.service</param-value>
</init-param>

【讨论】:

    【解决方案2】:

    如果您导航到您的 tomcat 文件夹,特别是配置文件 conf/server.xml,底部的标签是否与您预期的一样? 可能是您只是请求了错误的 URL(缺少基本路径) - 查看 server.xml 文件告诉您有关 Web 应用程序路径的内容。

    在 Eclipse 中,您将拥有带有两个子窗格的服务器窗格:概览和模块。这些模块显示您的网络应用程序和基本路径。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-12-09
      • 2015-04-07
      • 2017-07-02
      • 2015-07-11
      • 2012-06-26
      • 1970-01-01
      • 2014-04-20
      相关资源
      最近更新 更多