Restful service请求源不可用

时间:2012-05-03 11:10:32

标签: eclipse maven jersey

我正在尝试使用 Jersey Maven Eclipse 开发基本的 Restful service

我正在关注给定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

1 个答案:

答案 0 :(得分:0)

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