我正在尝试使用 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
答案 0 :(得分:0)
我似乎错误地使用了网址。访问此服务的正确URL是 localhost:9999 / rest / hello / nelo 。也就是说,省略了插件中已经提到的项目名称。