Topics
How To: Oracle Containers for J2EE(OC4J)でのSpringサポートの説明はじめにSpring Frameworkは、高品質のアプリケーションを迅速かつ簡単に作成できる主要アプリケーション・フレームワークです。 Springはアプリケーション・サーバーによって提供される補完的Java Enterprise Edition(Java EE)サービスを使用して、そのサービス上で実行されるよう設計されています。 これらのサービスには、データベース接続、トランザクション管理(JTA)、Webサービス、メッセージング(JMS)、永続性(JPA)およびアプリケーション管理があります。 Springアプリケーションは、おもにエンタープライズ・クラスのアプリケーションに必要なサービスとAPIを提供する、Java EEに完全準拠したコンテナに頻繁に配置されます。 オラクルでは、SpringベースのアプリケーションがOC4Jサーバーでシームレスに配置および実行されるよう、多くのリソースを投入してきました。 このHow-Toでは、Spring Framework Oracle Containers for Java EE(OC4J)10.1.3.2上に構築されたアプリケーションのサポートについて説明します。 特に、OC4J上でSpringベースのアプリケーションを簡単に配置および実行する方法と、OC4Jで提供されるSpringの統合についても説明します。 このHow-Toは、次の2つのアプリケーションから構成されています。
SRDEMOでのSpringの使用方法SRDEMOアプリケーションは、複数のレイヤーで構成されます。レイヤーには、JSFベースのプレゼンテーション・レイヤー、Spring Beanに完全に基づくサービス・レイヤー、およびデータ・アクセスを含む永続レイヤーがあります。 プレゼンテーション・レイヤーSRDEMOのプレゼンテーション・レイヤーは、SpringのWeb MVCフレームワークを使用します。 このフレームワークは他の多くのWeb MVCフレームワークと同様、リクエスト駆動型で、リクエストをコントローラにディスパッチしてWebアプリケーションの開発を促進するその他の機能を提供する中央サーブレットを中心に設計されています。 アプリケーションにより使用されるSpring MVC Beanは、srdemo-servlet.xmlファイルに定義されています。このファイルは、SRDEMOソースのsrdemo/war/WEB-INFディレクトリにあります。 元のSRDEMOアプリケーションのプレゼンテーション・レイヤーは、JavaServer Faces(JSF)に基づいています。 SpringはJSFとの包括的な統合に必要なグルー・コードを提供するため、既存のフレームワークがSpringと連動するように適合させるのは非常に簡単です。 サービス・レイヤーサービス・レイヤーは、Plain Old Java ObjectsまたはPOJOのみで構成されるSpring Bean上に構築されています。 ビジネス・オブジェクトは、統合層の一部であるSpringのデータ・アクセス・オブジェクト(DAO)やSpring Beanを起動します。 アプリケーションで使用されるビジネス・オブジェクトおよびデータ・オブジェクトのSpring Beanはどちらも、Springアプリケーション・コンテキスト構成(applicationContext.xml)で定義されています。これもSRDEMOソースの/warディレクトリで確認できます。 このファイルは、SRDEMO Webアプリケーションのコンテキストを定義しています。 このファイルを見れば、このBeanの定義を確認できます。 <bean id="transactionManager" class="org.springframework.transaction.jta.OC4JJtaTransactionManager"/> この定義は、OC4JJtaTransactionManager Beanのインスタンスを作成します。これは、Springスタック内のOC4J固有の実装で、OC4Jトランザクション・マネージャへの迅速な直接アクセスを提供します。 OC4Jのトランザクション管理インフラストラクチャの最上位にあるSpringのトランザクション抽象化レイヤーの使用により、SRDEMOアプリケーションでグローバル・トランザクション、つまり複数リソース(この場合はOracleデータベースとJMSキュー)を伴うトランザクションを作成できます。 永続レイヤーSRDEMOの永続レイヤーはTopLink Essentialsを使用します。これは、Spring 2.0.x配布パッケージに含まれるJava Persistence API(JPA)のリファレンス実装です。 このアプリケーションでは、TopLinkエンティティ・マネージャBeanがSpring DAO Bean(org.srdemo.model.dao.SRDemoDAO)に直接投入されます。 TopLinkエンティティ・マネージャBeanは、persistence.xmlで定義されたEntityManagerFactoryにより作成されます。これは、SRDEMOソースの/src/META-INFディレクトリにあります。 前提条件必須知識アプリケーションのサンプルをより良く理解するためには、以下を熟知している必要があります。
SpringおよびOracle Containers for J2EE(OC4J)の詳細は、次のウェブサイトを参照してください。 ソフトウェア要件このデモンストレーションでは、次のソフトウェア・コンポーネントがインストールされ、正しく構成されている必要があります。
オプションで、 Oracle Application Server 10g Release 3(10.1.3.2.0) のHow-Toを実行できます。 既存の10.1.3.0または10.1.3.1アプリケーション・サーバー・インストールを10.1.3.2バージョンにアップグレードする場合は、パッチ5906151をhttp://metalink.oracle.comから入手できます。 必要なSpring 2.0.4ライブラリおよび必要な依存性はすべて、How-Toソースにパッケージされています。 表記法
アプリケーション配置の準備Oracle Containers for Java EE 11 Technology Previewのスタンドアロンのインスタンスでアプリケーションのサンプルを実行するには、次の手順に従ってください。 1. サンプルのファイル・ディレクトリの検証
2. 環境の設定次の環境変数が定義されていることを確認してください。
3. データベースの構成SRDEMOスキーマの作成
SRJMSDEMOスキーマの作成
4. Java Message Service(JMS)の構成この例では、Oracle Containers for J2EE(OC4J)JMSプロバイダを使用します。 oc4jjmsリソース・プロバイダがORACLE_HOME%/j2ee/home/config/application.xmlでコメントアウトされていることを確認します。 リソース・アダプタの構成OracleASjmsリソース・アダプタが%ORACLE_HOME%/j2ee/home/config/oc4j-connectors.xmlでコメントアウトされていることを確認します。 Oracle Containers for J2EE(OC4J)の実行中は、インスタンスを停止後再起動して、これらの構成変更を有効にします。 5. Oracle Containers for J2EE(OC4J)サーバーの起動以上を変更した後に、次のコマンドを使用してOracle Containers for J2EE(OC4J)をスタンドアロンで起動します。
アプリケーション稼働中のメモリ不足問題を回避するため、ヒープ・サイズおよびPermGenサイズを設定してください。 Oracle Application Server管理インストールを使用している場合、上記の変更後に次のコマンドを使用します。
5. Oracle Containers for J2EE(OC4J)への必要な共有ライブラリのインストールSRDEMOおよびSRJMSDEMOはともにsrdemo_common_lib.jarを使用します。JARを各アプリケーションとパッケージ化せずに、Oracle Containers for J2EE(OC4J)に共有ライブラリを作成します。 いずれのアプリケーションも、このライブラリをorion-application.xmlデプロイメント・ディスクリプタのimport-shared-library定義によりインポートするよう構成されます。 Application Server Controlを使用して、Oracle Containers for J2EE(OC4J)に共有ライブラリ定義を簡単に作成し、ライブラリJARをサーバーにアップロードできます。
6. データソースの構成アプリケーションには、配置を可能にするプリパッケージのデータソースが含まれます。 ただし、アプリケーションを使用するには、データソースがデータベースに接続するよう修正する必要があります。 SRDEMOデータソースの構成
SRJMSDEMOデータソースの構成
構成の変更を有効にするには、Oracle Containers for J2EE(OC4J)を停止して再起動する必要があります。 アプリケーションの構築と配置各アプリケーションのソースには、配置可能なEARファイルを生成してOracle Containers for J2EE(OC4J)サーバーに配置するAntビルド・ファイルが含まれます。 Ant 1.6.2はOracle Containers for J2EEに同梱されており、 PATH環境変数を $ORACLE_HOME/ant/binに設定する必要があります。 オペレーティング・システムによっては、現在はAntが環境変数をサポートしていないものがあります。 該当するオペレーティング・システムの場合は、 %HOWTO_HOME% ディレクトリにあるant-oracle.xmlを修正してください。 ORACLE_HOME変数がOracle Containers for J2EE(OC4J)インストールのルート・ディレクトリに設定されていることを確認します。 1. SRDEMOアプリケーションの構築と配置
正しく実行された場合、SRDEMO.earファイルが\distディレクトリに作成されて、Oracle Containers for J2EE(OC4J)に配置されます。 2. SRJMSDEMOアプリケーションの構築と配置
正しく実行された場合、SRJMSDEMO.earファイルが\distディレクトリに作成されて、Oracle Containers for J2EE(OC4J)に配置されます。 アプリケーションの実行アプリケーションが配置されたので、実際に試してみましょう。 使用例は簡単です。 SRDEMOを使用して、サービス・リクエストを作成し、技術者に割り当てます。 次に、技術者としてSRJMSDEMOにログインし、新しいサービス・リクエストを取得します。 サービス・リクエストを作成すると、詳細とJMSキューがグローバル・トランザクションの一部としてデータベースに書き込まれます。 実際には次のことが可能です。 まず、次のURLのSRDEMO Webアプリケーションにアクセスします。 http://localhost:8888/srdemo
リクエストの詳細がコンソールのJMSメッセージとして送信されたことが確認できます。 また、新しいリクエストが、グローバル・トランザクションの一部としてデータベースに書き込まれます。 次のURLのSRJMSDEMO Webアプリケーションにアクセスします。 http://localhost:8888/srjmsdemo
JMSキューから取得したリクエストの詳細を確認できます。 Spring BeanをMBeanとして公開Spring Frameworkには、Spring Beanを管理リソース(MBeans)としてJMX環境で動的に公開するためのサポートが含まれます。 JMXインフラストラクチャに構築されたApplication Server Control管理コンソールによりMBeanブラウザが提供されます。これを使用すると、Oracle Containers for J2EE(OC4J)の管理に使用されるシステムMBeanの公開に加え、個々のアプリケーションで定義されたMBeanへのアクセスが可能となります。 SpringアプリケーションのapplicationContextに少し変更を加えるだけで、アプリケーションで定義されたSpring BeanにApplication Server Controlを通じて直接アクセスできます。 SRDEMOに定義されたapplicationContext.xmlで、MBeanServerを作成する以下の表記法を確認できます。 <bean id="testMBeanServer" class="org.springframework.jmx.support.MBeanServerFactoryBean">
すぐ下に、transactionManager BeanをMBeanとして公開する別のスニペットが確認できます。 <bean id="exporter" class="org.springframework.jmx.export.MBeanExporter">">
次に、Application Server Controlにログインします。
まとめこの例で学習した内容は、次のとおりです。
|