プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle Coherenceリモート・クライアントの開発
12c (12.2.1)
E69907-02
目次へ移動
目次

前
次

27 Coherence RESTのデプロイ

この章では、Coherence RESTを埋込みHTTPサーバーおよびWebLogicサーバーにデプロイする手順について説明します。一般的なサーブレット・コンテナの使用方法についても説明します。Coherence RESTの保護の詳細は、『Oracle Coherenceの保護』を参照してください。

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

埋込みHTTPサーバーによるデプロイ

Coherenceでは、ホストREST Webサービスに使用可能な、複数の埋込みHTTPサーバーが実装されます。

  • DefaultHttpServer (Oracleの軽量HTTPサーバーでバッキング)

  • GrizzlyHttpServer (Grizzly HTTPでバッキングされ、本番環境に推奨)

  • SimpleHttpServer (Simple HTTPサーバーでバッキング)

  • JettyHttpServer (Jetty HTTPサーバーでバッキング)

デフォルトのHTTPサーバーの変更の詳細は、「埋込みHTTPサーバーの変更」を参照してください。

HTTPサーバーは、Coherenceプロキシ・サーバー上で有効である必要があります。HTTPサーバーを有効にするには、プロキシのキャッシュ構成ファイルを編集して、<http-acceptor>要素を<proxy-scheme>要素の中に追加し、HTTPサーバーのホストおよびポートを指定します。

次の例では、ローカルホスト127.0.0.1およびポート8080でリクエストを受け入れるようにHTTPサーバーを構成します。例では、HTTPサーバー・クラスおよびJerseyリソース構成クラスを明示的に定義し、Coherence RESTアプリケーションのコンテキスト・パスとして/を使用しています。ただし、デフォルト値があるので含める必要はありません。コンテキスト・パスは必要に応じて変更でき、別のコンテキス・パスとともに追加のCoherence RESTアプリケーションを定義できます。すべての<http-acceptorサブ要素の詳細なリファレンスは、『Oracle Coherenceでのアプリケーションの開発』を参照してください。

<proxy-scheme>
   <service-name>ExtendHttpProxyService</service-name>
   <acceptor-config>
      <http-acceptor>
         <class-name>
            com.tangosol.coherence.rest.server.DefaultHttpServer</class-name>
         <local-address>
            <address>127.0.0.1</address>
            <port>8080</port>
         </local-address>
         <resource-config>
            <context-path>/</context-path>
            <instance>
               <class-name>
                  com.tangosol.coherence.rest.server.DefaultResourceConfig
               </class-name>
            </instance>
         </resource-config>
      </http-acceptor>
   </acceptor-config>
   <autostart>true</autostart>
</proxy-scheme>

POFを使用している場合は、pof-config.xmlファイルにREST POFタイプの場所が含まれていることを確認します。詳細は、「POFが有効化されているサービスへのRESTサーバー・アクセスの構成」を参照してください。

WebLogicサーバーへのデプロイ

WebLogic Serverには、WebLogicサーバー・ドメイン内にCoherenceアプリケーションをパッケージ化、デプロイおよび管理する方法を標準化するCoherence統合機能が含まれています。Coherence RESTは統合標準に準拠する必要があります。WebLogicサーバー・ドメインのクラスタの構成に関する詳細は、『Oracle WebLogic Serverクラスタの管理』を参照してください。さらに、Coherenceアプリケーションは、グリッド・アーカイブ(GAR)としてパッケージ化する必要があります。GARの作成に関する詳細は、『Oracle WebLogic ServerのためのOracle Coherenceアプリケーションの開発』を参照してください。

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

タスク1: Coherence RESTのWebLogicサーバー・ドメインの構成

Coherence RESTをホストするWebLogicサーバー・ドメインに、管理Coherenceサーバーを作成します。サーバーは、Coherenceクラスタのストレージが無効なメンバーとして構成する必要があります。Coherence RESTソリューションに複数の管理Coherenceサーバーが必要な場合、サーバーはWebLogicサーバー・クラスタの層として管理される必要があります。管理Coherenceサーバーに関する詳細は『Oracle WebLogic Serverクラスタの管理』を参照してください。

タスク2: Coherence REST Webアプリケーションのパッケージ化

Coherence REST Webアプリケーションをパッケージ化するには:

  1. 次のようにWebアプリケーション・ディレクトリ構造を作成します。
    /
    /WEB-INF/
    /WEB-INF/classes/
    /WEB-INF/lib/
    
  2. Webアプリケーション・デプロイメント・ディスクリプタ(web.xml)を作成し、次のようにRESTアプリケーションのサーブレットの定義を含めます。

    注意:

    デフォルトのサーブレット・コンテキスト・リスナーは、RESTアプリケーションのシャットダウン中にクラスタ・メンバーをシャットダウンするcoherence-rest.jarに含まれています。このリスナーは次に示すように登録されています。クラスタ・メンバーがシャットダウンされない場合、シャットダウン後に様々な例外がスローされます。

    <web-app>
       ...
       <listener>
          <listener-class>
             com.tangosol.coherence.rest.servlet.DefaultServletContextListener
          </listener-class>
       </listener>
       <servlet>
          <servlet-name>Coherence REST</servlet-name>
          <servlet-class>org.glassfish.jersey.servlet.ServletContainer
          </servlet-class>
          <init-param>
             <param-name>javax.ws.rs.Application</param-name>
             <param-value>
                com.tangosol.coherence.rest.server.ContainerResourceConfig
             </param-value>
          </init-param>
          <load-on-startup>1</load-on-startup>
       </servlet>
       <servlet-mapping>
          <servlet-name>Coherence REST</servlet-name>
          <url-pattern>/rest/*</url-pattern>
        </servlet-mapping>
          ...
    </web-app>
    
  3. web.xmlファイルを/WEB-INF/ディレクトリに保存します。
  4. jarユーティリティを使用して、WARファイルを作成します。たとえば、Webアプリケーション・ディレクトリのルートでコマンド・プロンプトから次のコマンドを発行します。
    jar -cvf coherence_rest.war *
    

タスク3: Coherenceアプリケーションのパッケージ化

Coherenceアプリケーションをパッケージ化するには:

  1. coherence-rest-config.xmlファイルをCoherenceアプリケーションのルートにコピーします。構造は次のとおりにする必要があります。
    /
    /com/myco/MyClass.class
    /lib/
    /META-INF/
    /META-INF/coherence-application.xml
    /META-INF/coherence-cache-config.xml
    /META-INF/pof-config.xml
    coherence-rest-config.xml
    
  2. pof-config.xmlファイルを編集し、Coherence RESTデフォルト・ユーザー・タイプを含むcoherence-rest-pof-config.xml POF構成ファイルをインクルードします。詳細は、「POFが有効化されているサービスへのRESTサーバー・アクセスの構成」を参照してください。
  3. jarユーティリティを使用して、GARファイルを作成します。たとえば、コマンド・プロンプトからGARディレクトリのルートで次のコマンドを発行します。
    jar -cvf MyCohApp.gar *
    

タスク4: エンタープライズ・アプリケーションのパッケージ化

エンタープライズ・アプリケーションをパッケージ化するには

  1. エンタープライズ・アプリケーション・ディレクトリ構造を作成し、Coherence REST WARファイルおよびCoherenceアプリケーションGARファイルをEARのルートにコピーします。次に例を示します。
    /
    /META-INF/
    /META-INF/application.xml
    /META-INF/weblogic-application.xml
    /coherence_rest.war
    /MyCohApp.gar
    
  2. application.xmlファイルを編集し、Coherence REST Webアプリケーションのモジュール定義を追加します。次に例を示します。
    <application>
       <module>
          <web>
             <web-uri>coherence_rest.war</web-uri>
             <context-root>/</context-root>
          </web>
       </module>
    </application>
    
  3. weblogic-application.xmlファイルを編集し、coherence-rest.jar共有ライブラリのライブラリ参照およびCoherenceアプリケーションGARファイルのモジュール参照を追加します。次に例を示します。
    <weblogic-application>
       <module>
          <name>person</name>
          <type>GAR</type>
          <path>MyCohApp.gar</path>
       </module>
       <library-ref>
          <library-name>coherence-rest</library-name>
       </library-ref>
    </weblogic-application>
    
  4. jarユーティリティを使用して、EARファイルを作成します。たとえば、コマンド・プロンプトでEARディレクトリのルートから次のコマンドを発行します。
    jar -cvf MyCohRestApp.ear *
    

タスク5: エンタープライズ・アプリケーションのデプロイ

エンタープライズ・アプリケーションをデプロイするには

  1. WebLogicサーバー・管理コンソールまたはWLSTツールを使用して、タスク1で作成した管理CoherenceサーバーにEARをデプロイします、
  2. ブラウザから、管理Coherenceサーバーのリスニング・ポートに移動しURLの一部にキャッシュ名を含めることにより、デプロイメントを検証します。例: http://host:port/rest/{cacheName}

Java EEサーバー(一般)へのデプロイ

この項では、Coherence RestをJava EE環境にデプロイする方法について説明します。

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

デプロイメント用のCoherence RESTのパッケージ化

Coherence RESTアプリケーションをパッケージ化するには:

  1. 次のように基本のWebアプリケーション・ディレクトリ構造を作成します。
    /
    /WEB-INF
    /WEB-INF/classes
    /WEB-INF/lib
    
  2. coherence.jarおよびcoherence-rest.jarライブラリをCOHERENCE_HOME/libディレクトリから/WEB-INF/libディレクトリにコピーします。
  3. Coherence RESTの依存性をORACLE_HOME/oracle_common/modules/ディレクトリから/WEB-INF/libディレクトリにコピーします。依存性のリストは、「Coherence RESTの依存性」を参照してください。
  4. Webアプリケーション・デプロイメント・ディスクリプタ(web.xml)を作成し、次のようにRESTアプリケーションのサーブレットの定義を含めます。

    注意:

    デフォルトのサーブレット・コンテキスト・リスナーは、RESTアプリケーションのシャットダウン中にクラスタ・メンバーをシャットダウンするcoherence-rest.jarに含まれています。このリスナーは次に示すように登録されています。クラスタ・メンバーがシャットダウンされない場合、シャットダウン後に様々な例外がスローされます。

    <web-app>
       ...
       <listener>
          <listener-class>
             com.tangosol.coherence.rest.servlet.DefaultServletContextListener
          </listener-class>
       </listener>
       <servlet>
          <servlet-name>Coherence REST</servlet-name>
          <servlet-class>org.glassfish.jersey.servlet.ServletContainer
          </servlet-class>
          <init-param>
             <param-name>javax.ws.rs.Application</param-name>
             <param-value>
                com.tangosol.coherence.rest.server.ContainerResourceConfig
             </param-value>
          </init-param>
          <load-on-startup>1</load-on-startup>
       </servlet>
       <servlet-mapping>
          <servlet-name>Coherence REST</servlet-name>
          <url-pattern>/*</url-pattern>
        </servlet-mapping>
          ...
    </web-app>
    
  5. web.xmlファイルを/WEB-INF/ディレクトリに保存します。
  6. coherence-rest-config.xmlファイルをWEB-INF/classesディレクトリにコピーします。
  7. coherence-cache-config.xmlファイルおよびtangosol-coherence-override.xmlファイルをWEB-INF/classesディレクトリにコピーします。
  8. POFを使用している場合は、pof-config.xmlファイルをWEB-INF/classesディレクトリにコピーします。pof-config.xmlファイルにREST POFタイプの場所が含まれていることを確認します。詳細は、「POFが有効化されているサービスへのRESTサーバー・アクセスの構成」を参照してください。
  9. jarユーティリティを使用して、Web ARchive (WAR)ファイルを作成します。たとえば、Webアプリケーション・ディレクトリのルートでコマンド・プロンプトから次のコマンドを発行します。
    jar -cvf coherence_rest.war *
    

    アーカイブには次のファイルが含まれます。:

    /WEB-INF/web.xml
    /WEB-INF/classes/coherence-rest-config.xml
    /WEB-INF/classes/tangosol-coherence-override.xml
    /WEB-INF/classes/coherence-cache-config.xml
    /WEB-INF/lib/coherence.jar
    /WEB-INF/lib/coherence-rest.jar
    /WEB-INF/lib/coherence_dependencies
    

サーブレット・コンテナへのデプロイ

Coherence RESTをWARファイルとしてパッケージ化することで、Coherence RESTを任意のサーブレット・コンテナにデプロイできます。詳細は、「デプロイメント用のCoherence RESTのパッケージ化」を参照してください。WARファイルのデプロイの詳細は、ベンダーのドキュメントを参照してください。また、追加のサーブレット・コンテナ・デプロイメントのオプションについては、Jerseyユーザー・ガイドを参照してください。

http://jersey.java.net/nonav/documentation/latest/user-guide.html#d4e194

POFが有効化されているサービスへのRESTサーバー・アクセスの構成

POFが有効化されているサービスには、定義済のCoherence REST POFユーザー・タイプが含まれている必要があります。ユーザー・タイプは、coherence-rest.jarライブラリに配置されているcoherence-rest-pof-config.xmlファイルに定義され、実行時に自動的にロードされます。

RESTのデフォルトのユーザー・タイプを構成するには、pof-config.xmlファイルを編集して、coherence-rest-pof-config.xml POF構成ファイルを含めます。次に例を示します。

<pof-config>
   <user-type-list>
      <include>coherence-pof-config.xml</include>
      <include>coherence-rest-pof-config.xml</include>
      ...
   </user-type-list>
</pof-config>