8 WebLogic Spring SCAアプリケーションのデプロイ
ノート:
SCAコンポジットのコンポーネントとしてのWebLogic Spring SCAアプリケーションの使用のサポートは、Oracle SOAスイートの現在のリリースでテクニカル・プレビューとして提供されています。ただし、この機能に関するドキュメントは、Oracle SOAスイートではまだ提供されていません。
デプロイメント・ユニットの準備
WebLogic SCAランタイムはエンタープライズ・アーカイブ(EAR)およびWeb アーカイブ(WAR)形式をデプロイメント・ユニットとしてサポートします。
通常のWebLogic SCAアプリケーションは、META-INF/jsca/
ディレクトリのSpringアプリケーション・コンテキスト・ファイルを、アプリケーションのPOJOクラスとバンドルします。
WebLogic Spring SCAアプリケーションのEARアーカイブの構成を次の例に示します。
META-INF/application.xml META-INF/weblogic-application.xml META-INF/jsca/spring-context.xml MyEJBApp.jar MyWebApp.war APP-INF/lib/MyScaClasses.jar META-INF/jsca/spring-context.xml APP-INF/classes/MyScaPojo.class
WebLogic Spring SCAアプリケーションのWARアーカイブの構成を次の例に示します。
WEB-INF/web.xml WEB-INF/weblogic.xml WEB-INF/lib/MyScaClasses.jar META-INF/jsca/spring-context.xml MyScaPojo1.class MyScaPojo2.class
デプロイメント記述子の構成
<library-ref>
要素をアプリケーションのデプロイメント記述子に追加する必要があります。
共有Webアプリケーション・ライブラリを参照する場合、オプションの<context-root>
要素を追加してライブラリ・モジュールのコンテキスト・ルートを宣言することもできます。これにより、コンテキスト・ルートが構成された値に確実に設定され、同じサーバーにデプロイされて同じ共有ライブラリを参照する他のWebLogic SCAアプリケーションと競合しないようにできます。
ノート:
各WebLogic Spring SCAアプリケーションに一意の<context-root>
を指定することをお薦めします。複数のアプリケーションが1つのサーバーまたはクラスタにデプロイされている場合、各アプリケーションにはweblogic-sca-1.0.war
への独自のライブラリ参照があります。各WebLogic SCAアプリケーションはweblogic-sca-1.0.war
で指定したデフォルトのコンテキスト・ルートを使用するため、アプリケーションごとに異なるコンテキスト・ルートを指定しないと、コンテキスト・ルートが競合することになります。
次の例は、EARのweblogic-application.xml
記述子内の<library-ref>
および<context-root>
を示しています。
<?xml version="1.0" encoding="UTF-8"?> <weblogic-application xmlns="http://www.bea.com/ns/weblogic/90"> <library-ref> <library-name>weblogic-sca</library-name> <context-root>weblogic-sca-ctx-root1</context-root> </library-ref> </weblogic-application>
次の例は、WARのweblogic.xml
記述子内の<library-ref>
および<context-root>
を示しています。
<?xml version="1.0" encoding="UTF-8859-1"?> <weblogic-application xmlns="http://www.bea.com/ns/weblogic/90"> <library-ref> <library-name>weblogic-sca</library-name> <context-root>weblogic-sca-ctx-root1</context-root> </library-ref> </weblogic-application>
バンドリング・ライブラリ
WebLogic Spring SCAアプリケーションはEARの場合APP-INF/lib
の下(WARの場合はWEB-INF/lib
の下)のspring.jar
をバンドルする必要があります。Springにはcommons-logging
への依存があります。したがって、jarはアプリケーションともバンドルされる必要があります。
WebLogic SCAはSpring 2.0.6以降をサポートします。Spring 2.5.3をお薦めします。
クラスタでのデプロイ
WebLogic Spring SCAアプリケーションは均一なクラスタ環境にデプロイできます。クラスタ・デプロイメントはアプリケーションを各ノードにデプロイし、ほとんどのリクエスト処理はステートレス(ステートフルな処理は自分の状態を保管するのにデータベースを使用)なので、ロード・バランサまたはプラグインはどのノードにもリクエストをルーティングできます。
他のツールを使用したWebLogic Spring SCAアプリケーションのデプロイ
Oracle Enterprise Pack for Eclipse (OEPE)およびOracle JDeveloperを使用して、WebLogic Spring SCAアプリケーションをスタンドアロンWebLogic Serverにデプロイすることもできます。
これらのツールでのWebLogic SCAサポートの詳細は、ツールのサポートを参照してください。
ランタイム
WebLogic Spring SCAアプリケーションがデプロイされると、そのサービスは適切なバインディング・コンポーネントの実装により公開されます。binding.ws
で定義されたサービスの場合、Webサービス・バインディング・コンポーネントの実装によりWebサービスのエンドポイントが公開されます。binding.ejb
で定義されたサービスの場合、EJBバインディング・コンポーネントによりEJBがJNDIで使用可能になります。
同じアプリケーション内でのデプロイ中に複数のSpringアプリケーション・コンテキスト・ファイルが使用される場合、WebLogic SCAランタイムは一致するサービスおよび参照をワイヤリングし、内部ワイヤリング用のバインディングを無視します。これにはsca:reference
要素でオプションのdefault
属性の使用が必要です。
「sca:reference要素」を参照してください。
ノート:
2つまたはそれ以上のSpringアプリケーション・コンテキスト・ファイルを含むWebLogic Spring SCAアプリケーションは、Oracle SOA内の他のコンポジットにのみネストできますが、これは包含SCDLファイルが必要なためです。