Restletを試してみる。

1.ライブラリの取得
 サーブレットコンテナ(Tomcat)上で動かすので、Edition for Java EE をダウンロード
 (2011/9/4時点、2.0.9)
 http://www.restlet.org/downloads/stable

2.Eclipseでの開発

 1.プロジェクトの新規作成(動的Webプロジェクト)
   プロジェクト名(sampleRestlet)

 2.ServerResource のサブクラスを作成

  モデルクラスのようなレイヤーのようです。

  アノテーション @Get でこのクラスを呼び出すと実行されるメソッドを指定するようだ。
  今回は hello,world を返却するメソッドを1つのみ実装  

  例)
  public class HelloWorldResource extends ServerResource {

 @Get
 public String represent(){
  return "hello, world";
 }

  }

3.Application のサブクラスを実装

  コントローラクラスのようなレイヤーのようです。

  web.xmlで、RestletのサーブレットクラスとMappingさせます。

  ここで、URL毎にServerResource のサブクラスとのルーティング(呼び出しの制御)を行う

  例)
  public class FirstStepsApplication extends Application {

  @Override
  public synchronized Restlet createInboundRoot(){
  Router router = new Router(getContext());
// アプリ名/hello で HelloWorldResource.class のメソッドを呼び出す。
  router.attach("/hello",HelloWorldResource.class);
  
      return router;

  }
  }
  
4.サーブレット(リクエスト)とApplication のサブクラスのマッピング

  web.xmlの設定

  Restletの実行URLを定義

<servlet-mapping>
<servlet-name>RestletServlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
  
  このアプリケーション内の全てのアクセスをRestletで処理させる

<servlet>
<servlet-name>RestletServlet</servlet-name>
<servlet-class>org.restlet.ext.servlet.ServerServlet</servlet-class>
<init-param>
<!-- Application class name -->
<param-name>org.restlet.application</param-name>
<param-value>firstSteps.FirstStepsApplication</param-value>
</init-param>
</servlet>

  Restletで処理する場合に、実行する application のサブクラス(firstSteps.FirstStepsApplication)を指定

5.ライブラリの追加
org.restlet.jar
org.restlet.ext.servlet.jar
を WEB-INF/lib に配置
   Eclipseでは、Web Appライブラリとして認識されていること。


6.Tomcat起動

7.実行
http://localhost:8080/sampleRest/hello

画面に hello, world が表示される。

参考HP

http://wiki.restlet.org/docs_2.0/13-restlet/275-restlet/312-restlet.html