gpt4 book ai didi

java - Jersey 和 Jackson 的 REST-Web 服务示例中出现 404 错误

转载 作者:行者123 更新时间:2023-12-03 02:16:48 26 4
gpt4 key购买 nike

我正在尝试使用 JSON 构建一个简单的基于 java 的 REST Web 服务。我还使用 Maven 进行依赖管理。

由于我是新手,所以我一直在彻底遵循 http://www.mkyong.com/webservices/jax-rs/json-example-with-jersey-jackson/ 上的一个很好的 5 步教程。 ,但是我无法运行这个简单的示例。

Maven 运行良好,所有必需的依赖项均已下载并集成到项目中(库包含在已部署的 .war 文件中)。唯一的问题是,当我想在部署项目后打开教程中给出的 URL (localhost:8080/RESTfulExample/rest/json/metalica/get) 时,我收到 404 错误,没有任何其他信息。

编辑:

这是我的 pom.xml

<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.2</version>
<scope>test</scope>
</dependency>

<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-server</artifactId>
<version>1.8</version>
</dependency>

<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-json</artifactId>
<version>1.8</version>
</dependency>

</dependencies>

<build>
<finalName>RESTfulExample</finalName>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</build>

正如我所说,构建运行良好,依赖项已加载并集成到项目中。

现在,这是我的 web.xml 的内容 安静的 Web 应用程序

<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>com.mkyong.rest</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
<param-value>true</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>

接下来,我使用 JSON-Service 类和模型类 Track。我的 JSON 服务如下所示:

@Path("/json/metallica")
public class JSONService {

@GET
@Path("/get")
@Produces(MediaType.APPLICATION_JSON)
public Track getTrackInJSON() {

Track track = new Track();
track.setTitle("Enter Sandman");
track.setSinger("Metallica");

return track;

}

@POST
@Path("/post")
@Consumes(MediaType.APPLICATION_JSON)
public Response createTrackInJSON(Track track) {

String result = "Track saved : " + track;
return Response.status(201).entity(result).build();

}
}

我不确定如何检查服务器端异常,对此的任何提示也将不胜感激......:-)

最佳答案

您在 servlet 映射中定义

<servlet-mapping>
<servlet-name>jersey-serlvet</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>

所以你的网址应该正确调用localhost:8080/rest/json/metalica/get

关于java - Jersey 和 Jackson 的 REST-Web 服务示例中出现 404 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14579547/

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