JSONを使用して単純なJavaベースのRESTWebサービスを構築しようとしています。依存関係の管理にもMavenを使用しています。
私はこれに慣れていないので、http: //www.mkyong.com/webservices/jax-rs/json-example-with-jersey-jackson/で5ステップのチュートリアルを徹底的にフォローしていますが、この簡単な例を実行することはできません。
Mavenは正常に実行され、必要なすべての依存関係がダウンロードされてプロジェクトに統合されました(ライブラリはデプロイされた.warファイルに含まれています)。唯一の問題は、プロジェクトをデプロイした後にチュートリアル(localhost:8080 / RESTfulExample / rest / json /metallica / get)で指定されたURLを開きたいときに、追加情報なしで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.xmlRestfulWebアプリケーションのコンテンツです
<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();
}
}
サーバー側の例外をチェックする方法がわかりません。これに関するヒントもありがたいです...:-)