[英]404 Error at REST-Webservice example with Jersey and Jackson
我正在嘗試使用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();
}
}
我不知道如何檢查服務器端異常,對此的任何提示也很感激...... :-)
您在servlet映射中定義的
<servlet-mapping>
<servlet-name>jersey-serlvet</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
所以你的url應該被正確地稱為localhost:8080/rest/json/metallica/get
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.