【发布时间】:2013-01-29 09:28:24
【问题描述】:
我正在尝试使用 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/metallica/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 的内容 Restful 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();
}
}
我不知道如何检查服务器端异常,对此的任何提示也很感激...... :-)
【问题讨论】:
-
任何服务器端异常??
-
我认为您的请求中有错误,请用一些示例代码解释您的问题....
-
您可以在您的问题中发布您的
web.xml和pom.xml吗?您的服务器应用程序(JBoss?)及其版本是什么? -
你的 JSONService 类很好地放在了 com.mkyong.rest 包中?
标签: java jakarta-ee jaxb jersey jax-rs