Mac + Eclipse + Tomcat でWEBアプリ開発のための準備3 - Jersey ライブラリの追加 -
作ろうと思っているのは REST な サービスなので
Java の RESTful の仕様 JAX-RS の実装である Jersey を使うことにする。
ここのダウンロードページから、
- jersey-server.jar
- jersey-core.jar
- asm.jar
と Servlet で必要な
- jersey-servlet.jar
を落としてくる。
これらを WEB-INF/lib の中にコピーして、Build path に追加する。
さらに WEB-INF の中に web.xml というファイルを追加する。
web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> <display-name>jaxrsexample</display-name> <servlet> <servlet-name>Jersey</servlet-name> <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>Jersey</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping> </web-app>
web.xml の中で jersey を使いますよってのを宣言する。
マッピングでは /* (すべてのURIに対して有効)にしたので
これでこのサーブレットでは jersey が動く。
ここにクラスを追加。
SampleService.java
package com.test.JerseySample; 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 SampleService { @GET @Produces(MediaType.TEXT_PLAIN) public String sayHello() { return "HelloWorld"; } }
@path が @WebServlet に相当、
@GET が doGet メソッドの代わり、
@Produces でレスポンスのフォーマットを指定する。
#json や xml も同様に指定できるらしい。