JAX-RSでRESTful webサービス構築してみる

JAX-RSでRESTful webサービス構築してみる

JAX-RSでRESTful webサービス構築してみます。

まずRESTとは簡単に説明すると

・HTTPを使うWebサービス

・全てのリソースは一意のURLで取得(http://~~~~.com/methodみたいな感じ)

・HTTPメソッドを使用する(主にGET,PUT,POST,DELETE)

・JSON,XMLがサポートされている

となります。この仕様にそっているシステムをRESTfulシステムと言ったりします。

JAX-RSは、RESTful webサービスを実装するためのJAVAの仕様です。このJAX-RSをリファレンス実装しているのがJerseyです。

※リファレンス実装とは、JAX-RSの実装を行う上で参考となる実装のこと

まずmavenで雛形プロジェクトを作成します。

C:\workspace>mvn archetype:generate -DgroupId=com.confrage.jaxrs -DartifactId=
sample-jax-rs -DarchetypeArtifactId=maven-archetype-webapp

Jersey(ジャージー)はこちらからダウンロードします。jaxrs-ri-2.22.1をダウンロードしています。

ダウンロードしたフォルダ構成は以下のようになっていると思います。

jaxrs-ri - api
         - ext
         - lib

api,ext,lib配下のjarファイルは全て必要なので、先ほどmavenで作成したプロジェクトのWEB-INF配下にlibフォルダを作成し、そこに移動します。

次にEclipseからこのプロジェクトをインポートしてEclipseから使用できるようにします。(好みです)

pom.xmlが存在するフォルダにコマンドプロンプトで移動し、以下を実行します。

C:\workspace\sample-jax-rs>mvn eclipse:eclipse

これで.classpathや.projectファイルが作成されます。

次にEclipseを起動します。

[ファイル] – [インポート]から以下を表示します。

JAX-RSでRESTful webサービス構築してみる

「既存プロジェクトをワークスペースへ」を選択します。

ルート・ディレクトリーの選択欄に、先ほどEclipseプロジェクトにしたプロジェクトを指定し、「完了」を押します。

web.xml

プロジェクトが追加されたらweb.xmlを編集します。自動生成されているはずですが、太字部分を追加します。

<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
<display-name>Archetype Created Web Application</display-name>

<servlet>
<servlet-name>Jersey Web Application</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>com.confrage.jaxrs</param-value>
</init-param>
</servlet>

<servlet-mapping>
<servlet-name>Jersey Web Application</servlet-name>
<url-pattern>/restful/*</url-pattern>
</servlet-mapping>
</web-app>

サーブレット作成

試しにアクセスする時に呼ばれるサーブレットを作成します。

URLとメソッドでマッピングするので、設定ファイルなどではなくアノテーションで呼ばれるメソッドをマッピングします。

package com.confrage.jaxrs;

import javax.ws.rs.GET;
import javax.ws.rs.Path;

@Path("/sample")
public class SampleServlet {
  @GET
  public String aaaaa() {// メソッド名は関係ない
    return "wahaha";
  }
}

WAR作成

プロジェクト配下までコマンドプロンプトで移動し、以下コマンドでWARを作成します。

C:\workspace\sample-jax-rs>mvn package

target配下にプロジェクト名.warファイルが作成されます。

これをTomcatのwebapps配下に配置します。

EclipseでTomcatを起動し、http://localhost:8080/sample-jax-rs/restful/sampleにアクセスした例です。(コンテキストルートはプロジェクト名です)

JAX-RSでRESTful webサービス構築してみる

コメント

タイトルとURLをコピーしました