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を起動します。
[ファイル] – [インポート]から以下を表示します。
「既存プロジェクトをワークスペースへ」を選択します。
ルート・ディレクトリーの選択欄に、先ほど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にアクセスした例です。(コンテキストルートはプロジェクト名です)
KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES6),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^
コメント