gpt4 book ai didi

java - Rest 服务出现 404 错误 - Jersey/tomcat8

转载 作者:行者123 更新时间:2023-11-28 23:30:13 25 4
gpt4 key购买 nike

过去几天我一直在用很多例子尝试这个,我无法让 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 启动时没有错误:

11-Jul-2015 11:23:08.327 INFO [localhost-startStop-8] com.sun.jersey.server.impl.application.WebApplicationImpl._initiate Initiating Jersey application, version 'Jersey: 1.18.1 02/19/2014 03:28 AM' 11-Jul-2015 11:23:08.795 INFO [localhost-startStop-8] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive /home/apcuser/tomcat8/apache-tomcat-8.0.24/webapps/ExProcess.war has finished in 1,488 ms

休息服务类:

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 Status 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)

关于java - Rest 服务出现 404 错误 - Jersey/tomcat8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31354059/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com