Windows 2008R2
JDK 1.6_33
Tomcat 7.0_42
maven 3.0.4
Jersey 2.2
Eclipse 3.8
JDK 1.6_33
Tomcat 7.0_42
maven 3.0.4
Jersey 2.2
Eclipse 3.8
■mavenプロジェクトの作成
新規プロジェクトの作成でmavenプロジェクトを作成します
ArtifactIdに「maven-archetype-webapp」を選択します
GroupIdおよびArtifactIdを適当に設定します
ここで設定した情報はそのままjavaのパッケージ名として使われます
デフォルトで作成するとJavaEE5がJavaのコンパイラとして設定されているので
ビルドパスの設定からJavaの1.6以上を設定します
ArtifactIdに「maven-archetype-webapp」を選択します
GroupIdおよびArtifactIdを適当に設定します
ここで設定した情報はそのままjavaのパッケージ名として使われます
デフォルトで作成するとJavaEE5がJavaのコンパイラとして設定されているので
ビルドパスの設定からJavaの1.6以上を設定します
■pom.xmlの設定(jerseyのインストール)
pom.xmlにjerseyの設定を記載してjerseyのライブラリを使えるようにします
最新版は2.2になっているので2.2を利用しますpom.xmlに以下の記述を記載します
どうやら2.系からはglassfishプロジェクトとして配布されているのが最新版のようです
1.系はcom.sum.jerseyとして配布しているので注意しましょう
また後述しますが、web.xmlに記載する際のパッケージ名も異なっているので注意しましょう
エラーがでなければインストール(リモートリポジトリからのJarダウンロード)は成功です
最新版は2.2になっているので2.2を利用しますpom.xmlに以下の記述を記載します
どうやら2.系からはglassfishプロジェクトとして配布されているのが最新版のようです
1.系はcom.sum.jerseyとして配布しているので注意しましょう
また後述しますが、web.xmlに記載する際のパッケージ名も異なっているので注意しましょう
<dependency> <groupId>com.sun.jersey</groupId> <artifactId>jersey-server</artifactId> <version>2.2</version> </dependency> <dependency> <groupId>org.glassfish.jersey.containers</groupId> <artifactId>jersey-container-servlet-core</artifactId> <version>2.2</version> </dependency>記載したら一回maven cleanを実行しておきましょう
エラーがでなければインストール(リモートリポジトリからのJarダウンロード)は成功です
■パッケージの作成
src/main/java配下にパッケージを作成します
今回はGroupIdおよびArtifactIdで指定した情報をそのままパッケージ情報とします
※「com.kakakikikeke.sample.jersey」という風になります
今回はGroupIdおよびArtifactIdで指定した情報をそのままパッケージ情報とします
※「com.kakakikikeke.sample.jersey」という風になります
■サンプルクラスの作成
先ほど作成したパッケージ配下にSampleServiceクラスを作成します
内容は以下の通りです
ステータスコードは200番で返却します
内容は以下の通りです
package com.kakakikikeke.sample.jersey; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.core.Response; @Path("/sample") public class SampleService { @GET @Path("/{param}") public Response getMsg(@PathParam("param") String msg) { String output = "Jersey say : " + msg; return Response.status(200).entity(output).build(); } }/sample以下のパスを取得して表示します
ステータスコードは200番で返却します
■web.xmlの設定
Tomcatのコンテナとして動作させるために設定を追加します
org.glassfish.jersey.servlet.ServletContainer
と
jersey.config.server.provider.packages
で
Jersey1.系ではここの指定パッケージ名が違いますので注意してください
<web-app> <display-name>Archetype Created Web Application</display-name> <servlet> <servlet-name>jersey-serlvet</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.kakakikikeke.sample.jersey</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>jersey-serlvet</servlet-name> <url-pattern>/api/*</url-pattern> </servlet-mapping> </web-app>Jersey2.2で注意しなければいけいのは
org.glassfish.jersey.servlet.ServletContainer
と
jersey.config.server.provider.packages
で
Jersey1.系ではここの指定パッケージ名が違いますので注意してください
■warファイルの作成
プロジェクトを右クリックし「Run As」から「Maven Build...」を選択
実行の新規ウィザードが立ち上がるのでGoalsに「package」を入力
ApplyしRunで実行する
成功するとtargetフォルダ配下にjersey.warが作成されます
実行の新規ウィザードが立ち上がるのでGoalsに「package」を入力
ApplyしRunで実行する
成功するとtargetフォルダ配下にjersey.warが作成されます
■Tomcatの起動とデプロイ
別途インストールしてあるTomcatを起動しデプロイを実施します
デプロイは直接サーバに配置しても良いし、管理画面からアップロードしても問題ありません
デプロイが完了したら以下に問い合わせてみましょう
http://localhost:8080/jersey/api/sample/hello
「Jersey say : hello」と返ってくれば成功です
デプロイは直接サーバに配置しても良いし、管理画面からアップロードしても問題ありません
デプロイが完了したら以下に問い合わせてみましょう
http://localhost:8080/jersey/api/sample/hello
「Jersey say : hello」と返ってくれば成功です
■参考サイト
http://www.mkyong.com/webservices/jax-rs/jersey-hello-world-example/
http://mvnrepository.com/artifact/org.glassfish.jersey.core/jersey-server/2.2
http://mvnrepository.com/artifact/com.sun.jersey/jersey-server/1.8
java.lang.ClassNotFoundException: org.glassfish.jersey.servlet.ServletContainer
が発生したら(今回紹介した記事は対応済み)
http://stackoverflow.com/questions/12422660/jersey-servlet-mapping-causes-404-error-for-static-resources
http://mvnrepository.com/artifact/org.glassfish.jersey.core/jersey-server/2.2
http://mvnrepository.com/artifact/com.sun.jersey/jersey-server/1.8
java.lang.ClassNotFoundException: org.glassfish.jersey.servlet.ServletContainer
が発生したら(今回紹介した記事は対応済み)
http://stackoverflow.com/questions/12422660/jersey-servlet-mapping-causes-404-error-for-static-resources
0 件のコメント:
コメントを投稿