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
| 固定リンク

