JAX-RSのリファレンス実装、Jerseyの使い方(2)

前回は基本となるアノテーションを軸に、きわめて単純なRESTサービスを構築する手順を紹介しました。今回はやはりRESTといえばXML/JSONということで、XMLやJSONを返すサービスを構築しましょう。

(前回と言っても、ポストしたのがだいたい1年前の日付だということにたった今気づきました。)

XMLを返す

次のようなリソースクラスを作成します。

jerseytest.resources.LocalDocumentResource

package jerseytest.resources;

import java.io.IOException;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;

import org.w3c.dom.Document;
import org.xml.sax.SAXException;

@Path("/indianTeas")
public class LocalDocumentResource {
	@GET
	public Document getDocument() {
		try {
			File f = new File("/path/to/indianTeas.xml");
			Document doc = DocumentBuilderFactory.newInstance()
					.newDocumentBuilder().parse(f);
			return doc;
		} catch (SAXException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} catch (ParserConfigurationException e) {
			e.printStackTrace();
		}
		return null;
	}
}

少しコード量が増えたもののやっていることは単純で、ローカルにあるXMLファイルをDocumentオブジェクトにして返しているだけです。 続きを読む JAX-RSのリファレンス実装、Jerseyの使い方(2)

JAX-RSのリファレンス実装、Jerseyの使い方(1)

標準のAPIを使ってプログラムを書いておくと色々と都合がいいので、RESTfulなWebサービスを作成しようとするときはJAX-RSを使いたいものです。

JavaEE6には初めから入っているJAX-RSですが、現場ではTomcat5.5(もちろんJava5です)とかが頑張っているのでそのままでは使えません。Apache Tomcat 5.5 と、JAX-RSのリファレンス実装である Jersey 1.4 を使って、単純なRESTサービスを実装する手順を紹介します。

インストールする

まずはJersey1.4のインストールから。Maven2を使っている場合は、java.netのリポジトリを設定します。

(pom.xml に以下を追加)
<repositories>
    <repository>
        <id>maven2-repository.dev.java.net</id>
        <name>Java.net Repository for Maven</name>
        <url>http://download.java.net/maven/2/</url>
        <layout>default</layout>
    </repository>
</repositories>

サーバアプリケーション側のライブラリは以下です。

(pom.xml に以下を追加)
<dependency>
    <groupId>com.sun.jersey</groupId>
    <artifactId>jersey-server</artifactId>
    <version>1.4</version>
</dependency>

jarをそのまま使いたい場合は、 http://jersey.java.net/ のDownloadからライブラリをダウンロードしてクラスパスに含めましょう。 続きを読む JAX-RSのリファレンス実装、Jerseyの使い方(1)