この章では、Coherence RESTを埋込みHTTPサーバー、WebLogicサーバーおよびGlassFishサーバーにデプロイする方法について説明します。一般的なサーブレット・コンテナの使用方法についても説明します。
この章の内容は次のとおりです。
Coherenceでは、RESTful Webサービスをホストするために使用できる2つの埋込みHTTPサーバーを提供しています。com.tangosol.coherence.rest.server.DefaultHttpServer
(Oracleの軽量HTTPサーバーでバッキング)とcom.tangosol.coherence.rest.server.GrizzlyHttpServer
(Grizzlyでバッキング)です。デフォルトのHTTPサーバーの変更の詳細は、「埋込みHTTPサーバーの変更」を参照してください。
HTTPサーバーは、Coherenceプロキシ・サーバー上で有効である必要があります。HTTPサーバーを有効にするには、プロキシのキャッシュ構成ファイルを編集して、<http-acceptor>
要素を<proxy-scheme>
要素の中に追加し、HTTPサーバーのホストおよびポートを指定します。
次の例では、ローカルホスト127.0.0.1
およびポート8080
でリクエストを受け入れるようにHTTPサーバーを構成します。
<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> <instance> <class-name> com.tangosol.coherence.rest.server.DefaultResourceConfig </class-name> </instance> </resource-config> </http-acceptor> </acceptor-config> <autostart>true</autostart> </proxy-scheme>
前述の例では、HTTPサーバー・クラスおよびJerseyリソース構成クラスを明示的に定義しています。ただし、デフォルト値があるので含める必要はありません。すべての<http-acceptor>
サブ要素の詳細なリファレンスは、『Oracle Coherence開発者ガイド』を参照してください。
この項では、Coherence RestをJava EE環境にデプロイする方法について説明します。
この項の内容は次のとおりです。
Coherence RESTアプリケーションをパッケージ化するには:
次のように基本のWebアプリケーション・ディレクトリ構造を作成します。
/ /WEB-INF /WEB-INF/classes /WEB-INF/lib
次のJARをCOHERENCE_HOME
/lib
ディレクトリから/WEB-INF/lib
ディレクトリにコピーします。
coherence.jar
coherence-rest.jar
jackson-all-1.8.1.jar
jersey-core-1.7.jar
jersey-json-1.7.jar
jersey-server-1.7.jar
Webアプリケーション・デプロイメント・ディスクリプタ(web.xml
)を作成し、次のサーブレットの定義を含めます。
<web-app> <servlet> <servlet-name>Coherence REST</servlet-name> <servlet-class> com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class> <init-param> <param-name> com.sun.jersey.config.property.resourceConfigClass</param-name> <param-value> com.tangosol.coherence.rest.server.DefaultResourceConfig </param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> ... </web-app>
web.xml
ファイルを/WEB-INF/
ディレクトリに保存します。
coherence-rest-config.xml
ファイルを/WEB-INF/classes
ディレクトリにコピーします。
coherence-cache-config.xml
ファイルおよびtangosol-coherence-override.xml
ファイルをWEB-INF/classes
ディレクトリにコピーします。
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/jackson-all-1.8.1.jar /WEB-INF/lib/jersey-core-1.7.jar /WEB-INF/lib/jersey-json-1.7.jar /WEB-INF/lib/jersey-json-1.7.jar
Coherence RESTをWebLogicサーバーにデプロイするには:
「デプロイメント用のCoherence RESTのパッケージ化」で説明されているように、Coherence RESTをWARファイルとしてパッケージ化します。Coherenceの正しいバージョンが使用されるように、次のWebLogic固有のデプロイメント・ディスクリプタを/WEB-INF
ディレクトリに追加します。
<?xml version="1.0" encoding="UTF-8"?> <wls:weblogic-web-app xmlns:wls="http://xmlns.oracle.com/weblogic/weblogic-web-app" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd http://xmlns.oracle.com/weblogic/weblogic-web-app http://xmlns.oracle.com/weblogic/weblogic-web-app/1.0/weblogic-web-app.xsd"> <wls:container-descriptor> <wls:prefer-web-inf-classes>true</wls:prefer-web-inf-classes> </wls:container-descriptor> </wls:weblogic-web-app>
WebLogic管理コンソール(http://localhost:7001/console
)を使用してWARをデプロイします。
ブラウザから、http://localhost:7001/
{cacheName}
に移動して、Coherenceキャッシュのデータにアクセスします。
Coherence RESTをGlassFishサーバーにデプロイするには:
GlassFish管理コンソールから「構成」→JVM設定とクリックして、「JVMオプション」タブに切り替え、次のオプションを追加します。
「JVMオプション」オプション・タブをクリックして、次のオプションを追加します。
-Dcom.sun.enterprise.overrideablejavaxpackages=javax.ws.rs,javax.ws.rs.core,javax.ws.rs.ext
「デプロイメント用のCoherence RESTのパッケージ化」で説明されているように、Coherence RESTをWARファイルとしてパッケージ化します。また、WEB-INF/sun-web.xml
またはWEB-INF/glassfish-web.xml
でクラス・ローダー委任をfalse
に設定することで、GlassFishで配信されるJerseyのバージョンをCoherence RESTで配信されるJerseyのバージョンにオーバーライドします。次に例を示します。
<sun-web-app error-url=""> <class-loader delegate="false"/> </sun-web-app>
GlassFish管理コンソール(http://localhost:4848/console
)を使用してWARをデプロイします。
ブラウザから、http://localhost:8080/
{cacheName}
に移動して、Coherenceキャッシュのデータにアクセスします。
Coherence RESTをWARファイルとしてパッケージ化することで、Coherence RESTを任意のサーブレット・コンテナにデプロイできます。詳細は、「デプロイ用のCoherence RESTのパッケージ化」を参照してください。WARファイルのデプロイの詳細は、ベンダーのドキュメントを参照してください。また、追加のサーブレット・コンテナ・デプロイメントのオプションについては、Jerseyユーザー・ガイドを参照してください。
http://jersey.java.net/nonav/documentation/latest/user-guide.html#d4e194