[英]404 error with Rest Service - Jersey/tomcat8
在過去的幾天中,我一直在嘗試使用許多示例,但是我無法使REST服務運行。 我有tomcat8(Ubuntu 14.x)/ Jersey。 任何想法?
pom.xml代碼段
<dependencies>
<dependency>
<groupId>javax.ws.rs</groupId>
<artifactId>jsr311-api</artifactId>
<version>1.1.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-server</artifactId>
<version>1.18.1</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-servlet</artifactId>
<version>1.18.1</version>
</dependency>
</dependencies>
web.xml代碼段
<servlet>
<servlet-name>RestService</servlet-name>
<!--servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class-->
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<!--param-name>jersey.config.server.provider.packages</param-name-->
<param-value>mail.service</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>RestService</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
Tomcat啟動時沒有錯誤:
2015年7月11日11:23:08.327信息[localhost-startStop-8] com.sun.jersey.server.impl.application.WebApplicationImpl._initiate啟動澤西島應用程序,版本“澤西島:1.18.1 02/19/2014 03 :28 AM'2015年7月11日11:23:08.795信息[localhost-startStop-8] org.apache.catalina.startup.HostConfig.deployWAR部署Web應用程序檔案/home/apcuser/tomcat8/apache-tomcat-8.0 .24 / webapps / ExProcess.war已在1,488毫秒內完成
休息服務等級:
package mail.service;
import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Request;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.UriInfo;
import javax.xml.bind.JAXBElement;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
@Path("restservice")
public class RestService {
@Context
UriInfo uriInfo;
@Context
Request request;
String id;
@GET
@Path("{name}")
public String sayHello(@PathParam("name") String name){
return "Hello " + name;
}
}
結果:
HTTP狀態404-/ rest / restservice / TestName
更新:我無法弄清楚我的項目有什么問題,只是從頭開始,如下: http : //javabrains.koushik.org/courses/javaee_jaxrs/lessons/Setting-Up現在可以工作了。
@Path("/restservice")
public class RestService {
@Context
UriInfo uriInfo;
@Context
Request request;
String id;
@GET
@Path("/{name}")
@Produces(MediaType.TEXT_PLAIN)
public String sayHello(@PathParam("name") String name){
return "Hello " + name;
}
}
http 404是找不到文件錯誤,因為沒有將/
附加到@Path
注釋值,所以出現此錯誤。
@Path("restservice")
應該是@Path("/restservice")
和@Path("{name}")
應該是@Path("/{name}")
編輯更新-
添加了@Produces(MediaType.TEXT_PLAIN)
您嘗試關注
web.xml中的更改
<servlet-mapping>
<servlet-name>RestService</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
並在servlet中
@Path("/rest/restservice/")
public class RestService {
@Context
UriInfo uriInfo;
@Context
Request request;
String id;
@GET
@Path("/{name}/")
public String sayHello(@PathParam("name") String name){
return "Hello " + name;
}
}
我也看到你評論了代碼。 但是,您是否清除了webapps目錄? 停止tomcat容器->轉到webapps目錄->刪除ExProcess文件夾(不是war)->啟動容器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.