ヘッダーをスキップ
Oracle® Coherenceクライアント・ガイド
リリース3.7.1
B65027-01
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
次
 

27 最初のCoherence RESTアプリケーションの作成

この章では、Coherence RESTアプリケーションを構築および実行するために必要な、基本的なタスクについて説明します。この章で説明されている多くの概念は、後の章で詳細に説明します。

この章の内容は次のとおりです。

27.1 Coherence RESTの例の概要

この章では、一連の手順を使用して、基本的なCoherence RESTアプリケーションを構成および実行します。各手順では、HTTPリクエストの処理、リモート・キャッシュの構成、Coherence REST APIの使用を管理するプロキシ・サーバーの構成など、基本的な概念について説明します。この章の例では、アプリケーション・サーバーが不要なスタンドアロンのアプリケーションをデプロイするために、埋込みHTTPサーバーを使用します。WebLogicやGlassFishなどのアプリケーション・サーバーに関するデプロイメント・オプションの詳細は、第29章「Coherence RESTのデプロイ」を参照してください。

この章の手順を完了するには、Coherence for Javaをインストールする必要があります。またこの例では、次のユーザー定義の変数を使用します。

27.2 ステップ1: クラスタ側の構成

Coherence RESTには、キャッシュおよびプロキシ・スキームの両方が必要です。プロキシ・スキームでは、受信するHTTPリクエストを処理するHTTPアクセプタを定義する必要があります。キャッシュおよびプロキシは、クラスタ側のキャッシュ構成デプロイメント・ディスクリプタ内に構成されます。この例では、プロキシはlocalhostおよびポート8080上でクライアントHTTPリクエストを受け入れるように構成されます。dist-http-exampleという名前の分散キャッシュを定義し、これを使用してクライアント・データをクラスタに格納します。

クラスタ側を構成する手順は、次のとおりです。

  1. example-server-config.xmlという名前のXMLファイルをDEV_ROOT\configフォルダに作成します。

  2. このファイルに次のXMLをコピーします。

    <?xml version="1.0"?>
    <cache-config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns="http://xmlns.oracle.com/coherence/coherence-cache-config"
       xsi:schemaLocation="http://xmlns.oracle.com/coherence/coherence-cache-config
       coherence-cache-config.xsd">
       <caching-scheme-mapping>
          <cache-mapping>
             <cache-name>dist-http-example</cache-name>
             <scheme-name>dist-http</scheme-name>
          </cache-mapping>
       </caching-scheme-mapping>
    
       <caching-schemes>
          <distributed-scheme>
             <scheme-name>dist-http</scheme-name>
             <backing-map-scheme>
                <local-scheme/>
             </backing-map-scheme>
             <autostart>true</autostart>
          </distributed-scheme>
    
          <proxy-scheme>
             <service-name>ExtendHttpProxyService</service-name>
             <thread-count>5</thread-count>
             <acceptor-config>
                <http-acceptor>
                   <local-address>
                      <address>localhost</address>
                      <port>8080</port>
                   </local-address>
                </http-acceptor>
             </acceptor-config>
             <autostart>true</autostart>
          </proxy-scheme>
       </caching-schemes>
    </cache-config>
    
  3. ファイルを保存し、閉じます。

27.3 ステップ2: ユーザー・タイプの作成

Personユーザー・タイプを作成します。これはキャッシュに保存され、基本的なREST操作を説明するために使用します。

Personオブジェクトを作成するには:

  1. DEV_ROOT\exampleフォルダにテキスト・ファイルを作成します。

  2. このファイルに次のJavaコードをコピーします。

    package example;
    import java.io.Serializable;
    import javax.xml.bind.annotation.XmlAccessType;
    import javax.xml.bind.annotation.XmlAccessorType;
    import javax.xml.bind.annotation.XmlRootElement;
    
    @XmlRootElement(name="person")
    @XmlAccessorType(XmlAccessType.PROPERTY)
    public class Person implements Serializable {
    
        public Person() {}
    
        public Person(String name, int age)
            {
            m_name = name;
            m_age  = age;
            }
    
        public String getName() { return m_name; }
    
        public void setName(String name) { m_name = name; }
    
        public int getAge() { return m_age; }
    
        public void setAge(int age) {  m_age = age; }
    
        protected String m_name;
        protected int    m_age;
    }
    
  3. Person.javaという名前でファイルを保存して閉じます。

  4. Person.javaをコンパイルします。

    javac example\Person.java
    

27.4 ステップ3: RESTサービスの構成

Coherence RESTfulサービスには、公開されるキャッシュに関するメタデータが必要です。メタデータには、キャッシュ・エントリのキーと値のタイプ、およびキー・コンバータおよび値マーシャリング処理が含まれます。キーおよび値のタイプは、Coherenceが組込みのコンバータおよびマーシャリング処理を使用できるようにするために必要です(XMLとJSONがサポートされます)。

RESTfulサービスを構成するには:

  1. coherence-rest-config.xmlという名前のXMLファイルをDEV_ROOT\configフォルダに作成します。

  2. このファイルに次のXMLをコピーします。

    <?xml version="1.0"?>
    <rest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xmlns="http://xmlns.oracle.com/coherence/coherence-rest-config"
          xsi:schemaLocation=
             "http://xmlns.oracle.com/coherence/coherence-rest-config
          coherence-rest-config.xsd">
      <resources>
        <resource>
          <cache-name>dist-http-example</cache-name>
          <key-class>java.lang.String</key-class>
          <value-class>example.Person</value-class>
        </resource>
      </resources>
    </rest>
    
  3. ファイルを保存し、閉じます。

27.5 ステップ4: キャッシュ・サーバー・プロセスの開始

RESTfulサービスは、キャッシュ・サービス・プロセス(DefaultCacheServer)の一環として公開されます。キャッシュ・サーバーのクラスパスは、前述の手順で作成したすべての構成ファイルおよびPerson.classを検索できるように構成する必要があります。クラスパスには、必要な依存性ライブラリも含める必要があります(「Coherence RESTの依存性」を参照)。簡潔にするために、前述のすべてのファイルはDEV_ROOT\libsフォルダに配置します。

DEV_ROOTフォルダは、次のような構成になります。

/
/config
/config/example-server-config.xml
/config/coherence-rest-config.xml
/example
/example/Person.class
/libs
/libs/jersey-server-1.7.jar
/libs/jersey-core-1.7.jar
/libs/jersey-json-1.7.jar
/libs/jaxb-api.jar
/libs/jaxb-impl.jar
/libs/jacskon-all-1.8.1.jar

次のコマンドラインでは、キャッシュ・サーバー・プロセスが開始され、tangosol.coherence.cacheconfigシステム・プロパティを使用して、ステップ1で作成したキャッシュ構成ファイルに明示的に名前が付けられます。また、必要なライブラリおよび構成ファイルをすべてクラスパス変数に設定します。

java -cp DEV_ROOT\config;DEV_ROOT\example;DEV_ROOT\libs\jersey-server-1.7.jar;DEV_ROOT\libs\jersey-core-1.7.jar;DEV_ROOT\libs\jersey-json-1.7.jar;DEV_ROOT\libs\jaxb-api.jar;DEV_ROOT\libs\jaxb-impl.jar;DEV_ROOT\libs\jackson-all-1.8.1.jar;COHERENCE_HOME\coherence.jar;COHERENCE_HOME\coherence-rest.jar  -Dtangosol.coherence.cacheconfig=DEV_ROOT\config\example-server-config.xml com.tangosol.net.DefaultCacheServer

コンソール出力をチェックして、プロキシ・サービスが開始されていることを確認します。出力メッセージは次のようになります。

(thread=Proxy:ExtendHttpProxyService:HttpAcceptor, member=1): Started: HttpAcceptor{Name=Proxy:ExtendHttpProxyService:HttpAcceptor, State=(SERVICE_STARTED), HttpServer=com.tangosol.coherence.rest.server.DefaultHttpServer, LocalAddress=localhost, LocalPort=8080, ResourceConfig=com.tangosol.coherence.rest.server.DefaultResourceConfig, RootResource=com.tangosol.coherence.rest.DefaultRootResource}

27.6 ステップ5: Coherence REST APIのテスト

次の例では、Coherence RESTful APIを使用し、HTTPクライアントを介してサービスを呼び出す方法について説明します。Coherence RESTful APIの詳細は、第28章「Coherence REST APIの使用方法」を参照してください。

Put操作

PUT http://localhost:8080/dist-http-example/1 Content-Type=application/json
   Request Body: {"name":"chris","age":30}
PUT http://localhost:8080/dist-http-example/2 Content-Type=application/json
   Request Body: {"name":"adam","age":26}

GET操作

GET http://localhost:8080/dist-http-example/1.json

GET http://localhost:8080/dist-http-example/1.xml

GET http://localhost:8080/dist-http-example?q=name is 'adam'

GET http://localhost:8080/dist-http-example;p=name

GET http://localhost:8080/dist-http-example/count()

GET http://localhost:8080/dist-http-example/double-average(age)

Post操作

POST http://localhost:8080/dist-http-example/increment(age,1)