RestEasyをクライアントとしても使ってみる。

こちらで書いたRESTサーバに対してクライアントのコードを実装してみます。
クライアントについてもRESTEasyが実現してくれています。
まずはStringで受け取ってStringを標準出力へ。
次にResponseBeanという出力されるXMLが定義してあるJavaBeanで受け取ってみます。

package sample.sample.bean.client;

import org.jboss.resteasy.client.ClientRequest;
import org.jboss.resteasy.client.ClientResponse;
import org.jboss.resteasy.plugins.providers.RegisterBuiltin;
import org.jboss.resteasy.spi.ResteasyProviderFactory;

import sample.sample.bean.ResponseBean;

public class SampleClient {

	public static void main(String[] args) {
		// RESTEasy初期化
		RegisterBuiltin.register(ResteasyProviderFactory.getInstance());
		// アクセスするURLを指定
		ClientRequest request = new ClientRequest(
				"http://localhost:8080/sample/sample/xx");
		ClientResponse response;

		try {
			// リクエストをGETで投げてStringクラスで受ける
			response = request.get(String.class);
			String returnString = (String) response.getEntity();
			System.out.println("ステータスコード:" + response.getStatus());
			System.out.println("戻り値:" + returnString);

			// リクエストをGETで投げてResponseBeanクラスで受ける
			response = request.get(ResponseBean.class);
			ResponseBean responseBean = (ResponseBean) response.getEntity();
			System.out.println("ステータスコード:" + response.getStatus());
			System.out.println("戻り値 agent:" + responseBean.userAgent
					+ " input:" + responseBean.inputString);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}


標準出力へは下記が出力されます。

ステータスコード:200
戻り値:<?xml version="1.0" encoding="UTF-8" standalone="yes"?><response agent="Jakarta Commons-HttpClient/3.1"><input>xx</input></response>
ステータスコード:200
戻り値 agent:Jakarta Commons-HttpClient/3.1 input:xx

Stringで受け取った場合はXMLを解釈しなくてはいけませんが、
Beanで受け取れるとそこの手間はなくJavaBeanが手に入ります。

RestClientとしてもEasyですね!