0

我正在尝试使用Jersey MavenEclipse开发一个基本的Restful 服务

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

我按照链接中给出的步骤进行操作,但是当我尝试运行该项目时出现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

4

1 回答 1

0

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

于 2012-05-04T05:51:17.820 回答