IBM JAX-RS 入門

JAX-RS は、サーバー・サイドの REST アプリケーションの開発を簡単にする、インターフェースおよび Java™ アノテーションの集合です。 JAX-RS テクノロジーを使用することによって、 REST (Representational State Transfer) アプリケーションは、他のタイプの分散システムと比較して、 開発が容易であり、コンシュームが簡単です。

このタスクについて

JAX-RS は、REST アプリケーションを迅速に開発する ための Java API です。JAX-RS は、サーブレットよりも迅速に Web アプリケーションを開発する手段を提供しますが、JAX-RS の主目的は RESTful サービスを作成することです。JAX-RS 1.0 は、REST アプリケーションを構築するためのサーバー・サイド・コンポーネント API を定義します。JAX-RS の IBM® 実装 は、JAX-RS (JSR 311) 仕様の実装を提供します。

この入門ガイドは、単純な JAX-RS Web アプリケーションを素早く開発し、デプロイできるよう支援します。

ここで説明する手順では、Web アプリケーション・アーカイブ (WAR) モジュール内にパッケージされた単純な Hello World サービスの開発を示します。

手順

  1. Java クラスを作成します。 このクラスは、リソースの 1 つのタイプを表すのに使用されます。
    package com.ibm.jaxrs.sample;
    
    public class HelloWorldResource {
    
    }
  2. この Java クラスに javax.ws.rs.Path アノテーションを付けます。 このアノテーションの値は、アプリケーション・コンテキストの 後の、URL の相対部分です。アプリケーション・コンテキスト は、デプロイメント中に完全に定義されます。JAX-RS 用語 では、このクラスをルート・リソースと呼びます。
    package com.ibm.jaxrs.sample;
    
    @javax.ws.rs.Path("/helloworld")
    public class HelloWorldResource {
    
    }
  3. Hello World! 応答を返す Java メソッド を作成します。 このメソッドは HTTP 要求を受け取ったときに起動されることを目的としています。
    package com.ibm.jaxrs.sample;
    
    @javax.ws.rs.Path("/helloworld")
    public class HelloWorldResource {
    
        public String sayHelloWorld() {
            return "Hello World!";
        }
    }
  4. この Java メソッドに javax.ws.rs.GET アノテーションを追加します。
    これで、HTTP GET 要求が /helloworld パスへアプリケーションによって 受け取られると、sayHelloWorld Java メソッド が起動されるようになります。応答メッセージ本体にはコンテンツとして Hello World! が含まれます。
    package com.ibm.jaxrs.sample;
    
    @javax.ws.rs.Path("/helloworld")
    public class HelloWorldResource {
    
        @javax.ws.rs.GET
        public String sayHelloWorld() {
            return "Hello World!";
        }
    }
    リソース実装はこれで完了です。
  5. JAX-RS javax.ws.rs.core.Application 構成サブクラス を作成する必要があります。 このサブクラスは、 JAX-RS ランタイム環境に関連する Java クラスの セットを戻す必要があります。
    package com.ibm.jaxrs.sample;
    
    public class HelloWorldAppConfig extends javax.ws.rs.core.Application {
        public Set<Class<?>> getClasses() {
            Set<Class<?>> classes = new HashSet<Class<?>>();
            classes.add(com.ibm.jaxrs.sample.HelloWorldResource.class);
            return classes;
        }
    }
  6. web.xml Web モジュール構成ファイルを作成します。
    このファイルは、Web モジュールが IBM JAX-RS REST サーブレットを含んでいることを Web コンテナーに知らせます。IBM JAX-RS REST サーブレットを アプリケーション構成クラスで初期化する必要があります。
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app id="WebApp_9" version="2.4" xmlns=http://java.sun.com/xml/ns/j2ee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
        <servlet>
            <servlet-name>HelloWorldApp</servlet-name>
            <servlet-class>com.ibm.websphere.jaxrs.server.IBMRestServlet</servlet-class>
            <init-param>
                <param-name>javax.ws.rs.Application</param-name>
                <param-value>com.ibm.jaxrs.sample.HelloWorldAppConfig</param-value>
            </init-param>
            <load-on-startup>1</load-on-startup>
        </servlet>
        <servlet-mapping>
            <servlet-name>HelloWorldApp</servlet-name>
            <url-pattern>/rest/*</url-pattern>
        </servlet-mapping>
    </web-app>
    前の例に指定されているサーブレット・マッピング を参照してください。パターンは、RESTful サービスの 最終的な URL を決定するのに役立ちます。
  7. j2ee.jar ファイルをクラスパスに追加します。

    app_server_root/dev/JavaEE ディレクトリーから j2ee.jar ファイルを取得し、JAR ファイルをクラスパスに追加します。クラスをコンパイルします。

  8. Web アプリケーションをアセンブルします。
    JDK に同梱されている jar コマンド行ツールを 使用して、以下のコマンドを実行します。
    jar cvf helloworld-jaxrs.war *
    この コマンドで WAR ファイルが作成されます。
  9. アプリケーション・サーバーにアプリケーションをデプロイします。

    アプリケーションをデプロイするとき、モジュールのコンテキスト・ルート の値を入力するよう求めるプロンプトが出されることがあります。コンテキスト・ルート は、アプリケーション・コンテキストを定義するのに使用されます。

    IBM JAX-RS サーブレットを使用するときには、 以下の URL がアプリケーション・コンテキストを定義します。
    http://<your_hostname>:<your Web_container_port>/<context_root_of_Web_application>/servlet_mapping_pattern
    @javax.ws.rs.Path の値で 指定されるルート・リソース URL は、アプリケーション・コンテキスト・ルートに対して相対的です。例えば、 デプロイメント中にコンテキスト・ルートが myapplication と 定義され、web.xml ファイル内に URL パターンが /rest/* と定義され、 Java ルート・リソース・クラス の @javax.ws.rs.Path 値が /helloworld だとします。この場合、 最終的な URL は次の例のようになります。
    http://localhost:9080/myapplication/rest/helloworld

    これで、Web ブラウザーまたは他の HTTP クライアントを使用して、クライアント要求を最終的な URL に送信できるようになります。

タスクの結果

JAX-RS Web アプリケーションの開発とアプリケーション・サーバーへのデプロイが完了しました。


トピックのタイプを示すアイコン タスク・トピック



タイム・スタンプ・アイコン 最終更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_jaxrs_getstarted
ファイル名:twbs_jaxrs_getstarted.html