3

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();

    }
}

サーバー側の例外をチェックする方法がわかりません。これに関するヒントもありがたいです...:-)

4

1 に答える 1

0

サーブレット マッピングで定義した

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

あなたのURLは正しく呼び出されるはずですlocalhost:8080/rest/json/metallica/get

于 2013-04-21T13:11:53.107 に答える