【问题标题】:Restful service Request Source Not AvailableRestful 服务请求源不可用
【发布时间】:2012-05-03 11:10:31
【问题描述】:

我正在尝试使用 Jersey Maven 和 Eclipse 开发一个基本的Restful 服务。

我正在按照here 给出的示例进行操作。

我按照链接中给出的步骤进行操作,但是当我尝试运行该项目时,我收到了 Request Resource Not available 错误。

这是我在 pom.xml 文件中修改的依赖项

 <dependencies>
<dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <version>3.8.1</version>
  <scope>test</scope>
</dependency>
<dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-server</artifactId>
        <version>1.8</version>
    </dependency>
<dependency>
  <groupId>javax.servlet</groupId>
  <artifactId>servlet-api</artifactId>
  <version>2.4</version>
  <scope>provided</scope>
 </dependency>

并在 pom.xml 中修改 Build

<finalName>maven.secondrest</finalName>
<plugins>
    <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>tomcat-maven-plugin</artifactId>
        <version>1.0-beta-1</version>
        <configuration>
            <port>9999</port>
            <path>/</path>
                <warFile>${project.basedir}/target/${project.build.finalName}.war</warFile>
        </configuration>
    </plugin>
</plugins>

web.xml 与示例中给出的非常相似:

<display-name>Restful Web Application</display-name>

<servlet>
    <servlet-name>jersey-serlvet</servlet-name>
    <servlet-class>
        com.sun.jersey.spi.container.servlet.ServletContainer
    </servlet-class>
    <init-param>
         <param-name>com.sun.jersey.config.property.packages</param-name>
         <param-value>rest.model</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>jersey-serlvet</servlet-name>
    <url-pattern>/rest/*</url-pattern>
</servlet-mapping>

这是修改过的java代码:

package rest.model;
//imports
@Path("/hello")
public class HelloWorldService {
@GET
@Path("/{param}")
public Response getMsg(@PathParam("param") String msg) {
    String output = "Jersey say : " + msg;
    return Response.status(200).entity(output).build();
}
}

我正在尝试使用以下命令运行它:mvn tomcat:run

当我输入 localhost:9999 时,它会显示一条消息“Hello World”。但是当我输入示例中给出的 url 时,我得到一个找不到资源的错误。

这是我运行的网址:http://localhost:9999/maven.secondrest/rest/hello/nelo

【问题讨论】:

    标签: eclipse maven jersey


    【解决方案1】:

    我似乎错误地使用了该 URL。访问此服务的正确 URL 是 localhost:9999/rest/hello/nelo。也就是说,省略插件中已经提到的项目名称。

    【讨论】:

    • 事实上,我并不完全了解这个插件如何实际访问资源。任何建议的阅读材料,关于它的工作,将不胜感激。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多