Tomcat-Jersey2でREST:臨時メモ
細かな説明はまだ入れていませんが、とにかく動いたというものを示します。
サンプルもダウンロード可能としました。
Jersey2のダウンロード/インストール
Tomcatは既に動いているとして。
https://jersey.java.net/download から Jersey JAX-RS 2.0 RI bundle"をダウンロードします。
ダウンロードしたjaxrs-ri-2.24.1.zipを展開すると次の3つのフォルダがあります。
- api
- ext
- lib
この3つのフォルダに入っているjarを全てTomcatのlibにコピーします。 Tomcatのlibは例えば
C:\Program Files\Apache Software Foundation\Tomcat 7.0\lib あるいは /usr/share/tomcat7/libなどとなっています。
本来はlibのみTomcatのlibにコピーし、extはJavaのlib/extにコピーするのが正しいやり方かも知れません。apiは?
Jersey2のインストールはこれで完了です。
RESTプログラムの作成
ここではTomcatのwebappフォルダ上で直接プログラム作ってみます。
フォルダは次のようになります。
URLの第1段(ここではrestTest)がここで決まります。
C:\Program Files\Apache Software Foundation\Tomcat 7.0\ webapp\ restTest\ <-- アプリケーションのエントリとして作成 WEB-INF\ web.xml 設定ファイル classes\ sample\ パッケージ HelloWorld.java サービスプログラム実体 MyApplication.java 設定プログラム あるいは /var/lib/tomcat7/ webapp/ restTest/ <-- アプリケーションのエントリとして作成 WEB-INF/ web.xml 設定ファイル classes/ sample/ パッケージ HelloWorld.java サービスプログラム実体 MyApplication.java 設定プログラムUnixではlibフォルダが/usr/share/tomcat7でwebappは/var/lib/tomcat7と異なることに注意が必要です。
サービスプログラムは次のようになります。
URLの最終段(ここではhello)がここできまります。
package sample; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; @Path("/hello") public class HelloWorld { @GET @Produces(MediaType.TEXT_PLAIN) public String sayHello() { return "Hello world"; } }MyApplication.java次のようになります。
package sample; import org.glassfish.jersey.server.ResourceConfig; public class MyApplication extends ResourceConfig { public MyApplication() { packages("sample");// パッケージを指定 } }web.xmlは次のようになります。 URLの第2段(ここではrest)がここで決まります。
<?xml version="1.0" encoding="UTF-8"?> <web-app> <servlet> <servlet-name>Jersey Web Application</servlet-name> <servlet-class >org.glassfish.jersey.servlet.ServletContainer</servlet-class> <init-param> <param-name>javax.ws.rs.Application</param-name> <param-value>sample.MyApplication</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>Jersey Web Application</servlet-name> <url-pattern>/rest/*</url-pattern> </servlet-mapping> </web-app>
HelloWorld.javaとMyApplication.javaをビルドすると完成です。ビルドは次のように行います。
set LIB=..\..\..\..\..\lib\javax.ws.rs-api-2.0.1.jar; set LIB=%LIB%..\..\..\..\..\lib\jersey-server.jar; set LIB=%LIB%..\..\..\..\..\lib\jersey-common.jar; echo %LIB% javac -cp "%LIB%" HelloWorld.java javac -cp "%LIB%" MyApplication.java
次のURLでアクセスすると"Hello World"が表示されます。
http://localhost:8080/restTest/rest/hello
サンプル
restTest以下を restTest.zipに置きました。
これをTomcatのwabappの下に置いて、classesの下の2つをビルドすれば動作します。
classesの下にビルドのためのバッチbuild.batを置きました。
ダウンロード/インストール(UBUNTU)
oracle-java1.7のダウンロード/インストール
$ sudo apt-get update $ sudo apt-get install oracle-java7-jdk
ANTのインストール
sudo apt-get install ant
Tomcatのインストール
$ sudo apt-get install tomcat7 tomcat7-admin tomcat7-common tomcat7-docs tomcat7-examples tomcat7-user後ろのtomcat7-XXXは不要だと思いますが、念のため。
サービスを起動させればTomcatでのアクセスができます。
$ sudo service tomcat7 restart
ダウンロード/インストール(Raspi)
Raspiには予めjava8が入っていた。次のようにしてインストールしたが今の所8がそのまま動いている。
$ sudo apt-get update $ sudo apt-get install oracle-java7-jdk
ANTのインストール。次のようにしてインストールしたがJava8ではANTは動かない。
sudo apt-get install ant
Tomcatのインストール
$ sudo apt-get install tomcat7 tomcat7-admin tomcat7-common tomcat7-docs tomcat7-examples tomcat7-user
| 固定リンク