Middleware
Application Server
EJB 3.0を使用したステートフルSession EJBの開発方法 日付:2006年5月6日
はじめにこのデモ・アプリケーションでは、Oracle Application ServerのステートフルSession Beanに対するサポートと、EJB 3.0を使用したライフ・サイクル・イベントのコールバックについて説明します。 このデモ・アプリケーションでは、ステートフルEJBを使用して、EJB 3.0の新機能を紹介します。 EJB 3.0は、以前のバージョンで開発者が直面した様々な複雑性を排除することによって、EJBアプリケーションの開発を大幅に簡素化します。 EJB 2.1を使用して簡単なステートフルEJBを作成するには、Beanクラスと2つのインタフェース、デプロイメント・ディスクリプタが必要です。 コンポーネント・インタフェース(リモートまたはローカル、あるいは両方)およびホーム・インタフェースはそれぞれ javax.ejb.EJBObjectと javax.ejb.EJBHomeを拡張し、Beanクラスがは javax.ejb.SessionBeanインタフェースを実装する必要がありました。 EJB 3.0では、それら多くの要件が次のように緩和されています。
基本的なショッピング・カートEJBを作成して、EJB 3.0を使用した簡単なステートフルEJBの例を示します。 EJB 3.0を使用したステートフルSession Bean
次に、Cart EJBのリモート・インタフェースを示します。
これは、Pure Javaインタフェースで、 EJBObjectを拡張しません。
Here is the code for the bean class. The EJB is a plain Java class that implements its business interface.
javax.ejb.Statefulアノテーションは、BeanをステートフルSession Beanとしてマークします。 Bean名は、デフォルトでCartBeanとなります。 このBeanは javax.ejb.SessionBeanを実装しないため、 javax.ejb.PostConstructアノテーションを使用して、initialize()メソッドにEJB 2.1 BeanのejbCreate()と同様のロールを割り当てます。 注:一部のEJB 3.0 APIは、EJB 3.0の最終仕様で変更される可能性があり、ご使用のアプリケーションをEJB 3.0最終仕様に適合させるための変更が必要な場合があります。 オラクルは、この仕様の最終版に適合する将来のバージョンのOracle Application Server Containers for J2EEについて、すべてのEJB 3.0機能の下位互換性を保証することはできません。 EJBクライアント
EJBクライアント・コードは、EJB 3.0で大幅に簡素化されています。 クライアントはJNDIからのEJBホーム・インタフェースの検索が不要になり、ホーム・インタフェースでcreateを起動して特別にBeanインスタンスを作成する必要がなくなりました。 クライアントは、依存性の注入を使用するだけで、EJBでメソッドを直接起動できます。
次に、EJBにアクセスするクライアント・コードのスニペットを示します。
前提条件必須知識
ソフトウェア要件このデモンストレーションでは、次のソフトウェア・コンポーネントがインストールされ、正しく構成されている必要があります。
表記法
アプリケーションの構築重要な構成ファイルはすべて %HOWTO_HOME%/etcにあります。application.xmlなどのデプロイメント・ディスクリプタ・ファイルなどです。 アプリケーションの実行次の手順に従って、Oracle Application Server 10g 10.1.3のスタンドアロン・インスタンスでデモンストレーションを実行します。 How-toの配布物の確認
環境の設定環境の構成次の環境変数が定義されていることを確認してください。
Oracle Application Server 10g 10.1.3.1の起動以上を変更した後に、次のコマンドを使用してOracle Containers for J2EEをスタンドアロンで起動します。
Oracle Application Server管理インストールを使用している場合、上記の変更後に次のコマンドを使用します。
4. アプリケーションの生成、コンパイル、および配置Ant 1.6.2はOracle Containers for J2EEに同梱されており、 PATH環境変数を $ORACLE_HOME/ant/binに設定する必要があります。 オペレーティング・システムによっては、現在はAntが環境変数をサポートしていないものがあります。 該当するオペレーティング・システムの場合は、 %HOWTO_HOME% ディレクトリにあるant-oracle.xmlを修正してください。 demo
Oracle Application Server管理インストールを使用している場合、Oracle Application Serverのインストールにおいて管理されているOracle Containers for J2EEインスタンスの oc4j.admin.userおよび oc4j.admin.password以外の変更については、次のプロパティを変更します。
環境に応じて、ant-oracle.propertiesのdeployer.uriを適切にコメントアウトする必要があります。たとえば、OPMNの管理する単一のOracle Containers for J2EEインスタンスやクラスタ化されたOracle Containers for J2EEインスタンス/グループなどです。 環境に合わせて、 jndi.propertiesのprovider.url、principalおよびcredentialの変更が必要です。 Oracle Application Serverインストールを使用している場合は、provider.urlを次の形式で使用してください。 opmn:ormi://localhost:6003:home/ejb30sfsb. アプリケーションの構築トップレベルの %HOWTO_HOME%ディレクトリに次のコマンドを入力します。
これで、 %HOWTO_HOME%/libディレクトリ内に ejb30sfsb.earが新しく作成されます。 構築に成功すると、このコマンドはアプリケーションをデプロイするよう試みます。 まず、OC4Jが稼働しているかをテストします。 アプリケーションのデプロイ次のコマンドを使用して、アプリケーションを個別にデプロイすることもできます。
%ORACLE_HOME%環境変数が定義されていることを確認します。 トップレベルの
%HOWTO_HOME%ディレクトリに次のコマンドを入力します。
アプリケーションの実行サンプルを次のように実行します。
Oracle Containers for J2EEを起動したコンソールに戻ると、Cart EJBが生成した出力が表示されています。 まとめこのドキュメントで学習した内容は、次のとおりです。
|