WebOTX Manual V10.2 (第4版) 目次を表示 |
本手順を行う前に、 [ > 環境設定 ] の設定を行ってください。
Memo
ステートレスセッションBean と ステートフルセッションBean と SingletonセッションBean は、手順が類似しているので、
ステートレスセッションBean の場合の説明を詳細に記載しています。
ステートフルセッションBean と SingletonセッションBean の手順については、適宜、該当箇所の読み替えでご理解ください。
ここでは、文字列のやり取りを行うステートレスセッションBeanを作成します。
EJB プロジェクト生成ウィザードを利用して、EJB プロジェクトを作成します。
メニュー ファイル>新規 > プロジェクト を選択して、新規プロジェクト 画面を開きます。
EJB > EJB プロジェクト を選択して、次へ をクリックします。
図3.1.1.1-1
新規 EJB プロジェクト 画面が表示されます。
プロジェクト名 に新規プロジェクト名StatelessBeanSampleを入力して、
ターゲット・ランタイム でWebOTX Application Server v10.2(Local Default)を選択します。
EJB モジュール バージョン が自動的に3.2となるのを確認した後、次へ をクリックします。
ターゲット・ランタイム にWebOTXサーバーランタイムがない場合、WebOTXマニュアル WebOTXランタイムの設定 を参照の上、設定を行ってください。
図3.1.1.1-2
Java画面が表示されます。
次へ をクリックします。
図3.1.1.1-3
EJB モジュール 画面が表示されます。
完了 をクリックします。
図3.1.1.1-4
プロジェクトStatelessBeanSampleが作成されます。
図3.1.1.1-5
ejbModule/META-INFフォルダ配下にMANIFEST.MFファイルが生成されています。
EJB モジュール画面で、ejb-jar.xmlデプロイメント記述子の生成 で ON
を指定した場合、META-INFフォルダ配下に ejb-jar.xml ファイルも存在することを確認してください。
EJB 生成ウィザード を使用して、EJB アプリケーションをプロジェクトに追加します。
メニュー の ファイル > 新規 > その他 を選択して、新規 画面を開きます。
EJB > セッション Bean(EJB 3.x) を選択して、次へ をクリックします。
図3.1.1.2-1
EJB 3.x セッション Beanの作成 画面が表示されます。
Java パッケージにsampleを入力して、
クラス名にTestStatelessSessionBeanを入力して、
ビジネス・インターフェースの作成のリモートをONにして、ローカルをOFF にして、次へ をクリックします。
図3.1.1.2-2
次のEJB 3.x セッション Beanの作成画面が表示されます。
完了をクリックします。
図3.1.1.2-3
EJB アプリケーションのソースが追加されます。
図3.1.1.2-4
Memo
本節での手順は、ステートレスセッションBean の場合と、後述のステートフルセッションBean、SingletonセッションBean の場合とで、
ほとんど違いがありません。
そのため、本節では、ステートフルセッションBeanとSingletonセッションBean の場合の説明も兼ねて、
(※ステートフルの場合:・・・)
との記載をしていますが、ステートレスセッションBean の場合は、この記載は無視して頂いて結構です。
また、ステートフルセッションBeanやSingletonセッションBean の場合、図中の表記は上記の記載内容で読み替えてご理解ください。
public String testString( String param );
図3.1.1.3-1
TestStatelessSessionBean.java (※ステートフルの場合:TestStatefulSessionBean.java、 Singletonの場合:TestSingletonSessionBean.java) に 次のビジネスメソッドを実装します。
public String testString(String param) { return param + " come from StatelessBeanSample";"; }(※ステートフルの場合:return param + " come from StatefulBeanSample"; 、Singletonの場合:return param + " come from SingletonBeanSample";)
図3.1.1.3-2
最後に、メニュー プロジェクト > クリーンでビルドしてください。
図3.1.1.3-3
WebOTX専用デプロイメント記述子 nec-ejb-jar.xmlを追加します。
StatelessBeanSample (※ステートフルの場合:StatefulBeanSample、Singletonの場合:SingletonBeanSample) プロジェクトの右クリックメニュー新規 > ファイルを選択します。
図3.1.1.4-1
新規ファイル 画面が表示されます。
親フォルダーを入力または選択 の内容を「StatelessBeanSample/ejbModule/META-INF」とします。 (※ステートフルの場合:「StatefulBeanSample/ejbModule/META-INF」 Singletonの場合:「SingletonBeanSample/ejbModule/META-INF」)
ファイル名 にnec-ejb-jar.xmlを入力します。
完了 をクリックします。
図3.1.1.4-2
StatelessBeanSample(※ステートフルの場合:StatefulBeanSample、Singletonの場合:SingletonBeanSample) プロジェクトのnec-ejb-jar.xmlが作成されます。
図3.1.1.4-3
nec-ejb-jar.xmlのSourceタブをクリックして、下記の内容を追加します。
<?xml version="1.0" encoding="UTF-8"?> <nec-ejb-jar> <enterprise-beans> <ejb> <ejb-name>TestStatelessSessionBean</ejb-name> </ejb> </enterprise-beans> </nec-ejb-jar>(※ステートフルの場合: <ejb-name>TestStatefulSessionBean</ejb-name>
作成されたnec-ejb-jar.xmlファイルは以下のようになります。
図3.1.1.4-4
Memo
単独でのデプロイに関しては、EJBコンポーネントのデプロイ
をご覧下さい。
EJBの使用例として、動的Web プロジェクトから EJB へのアクセスを行います。
ここでは、文字列のやり取りを行う動的 Web プロジェクトを作成します。
Webプロジェクト生成ウィザードを利用して、動的Webプロジェクトを作成します。
メニュー ファイル > 新規 > プロジェクト を選択して、新規プロジェクト 画面を開きます。
Web > 動的 Web プロジェクト を選択して、次へ をクリックします。
図3.1.3.1-1
動的 Web プロジェクト 画面が表示されます。
プロジェクト名 にDynWebTestを入力して、
ターゲット・ランタイム でWebOTX Application Server v10.2(Local Default)を選択します。
動的 Web モジュール バージョン が3.1であることを確認し、次へ をクリックします。
ターゲット・ランタイム にWebOTXサーバーランタイムがない場合、WebOTXマニュアル WebOTXランタイムの設定 を参照の上、設定を行ってください。
Memo
ステートフルやSingletonセッションBeanのチュートリアル実施時に、既にステートレスセッションBean のチュートリアルで作成した
動的 Web プロジェクト DynWebTest が存在する場合には、DynWebTest 以外のプロジェクト名で作成し、以降の記載では、
作成した名前での読み替えをお願いします。
図3.1.3.1-2
表示されたJava 画面に 次へ をクリックします。
図3.1.3.1-3
表示されたWeb モジュール 画面に 完了 をクリックすると、プロジェクトDynWebTestが作成されます。
図3.1.3.1-4
Web プロジェクトからEJB プロジェクトへアクセスする、index.jspを作成します。
DynWebTestプロジェクトの右クリックメニュー新規 > JSP Fileを選択します。
図3.1.3.2-1
新規ファイル 画面の、親フォルダーを入力または選択 に 「DynWebTest/WebContent」を指定し、ファイル名 に「index」を入力して 次へ をクリックします。
図3.1.3.2-2
表示されたJSP テンプレートの選択 画面で 完了 をクリックします。
図3.1.3.2-3
DynWebTestプロジェクトのindex.jspが作成されます。
図3.1.3.2-4
EJBプロジェクトへのアクセスを可能するために、DynWebTestにStatelessBeanSample (※ステートフルの場合:StatefulBeanSample、 Singletonの場合:SingletonBeanSample)との依存関係を設定します。
DynWebTestの右クリックメニューの プロパティーを選択してください。 ツリーから、Deployment Assembly を選択すると、Web Deployment Assembly 画面が表示されます。
追加 ボタンをクリックし、New Assembly Directive 画面で、「プロジェクト」 を選択後、次へ ボタンをクリックします。
図3.1.3.2-5
StatelessBeanSample (※ステートフルの場合:StatefulBeanSample、Singletonの場合:SingletonBeanSample) を選択して、完了 ボタンをクリックします。
図3.1.3.2-6
「StatelessBeanSample」(※ステートフルの場合:「StatefulBeanSample」、Singletonの場合:「SingletonBeanSample」) が追加されたのを確認し、OK をクリックします。
図3.1.3.2-7
index.jspのファイルに、EJBプロジェクトへのアクセス処理を追加します。追加後の内容を入力します。
<%@ page language="java" contentType="text/html; charset=windows-31j" pageEncoding="windows-31j"%> <%@ page import = "sample.TestStatelessSessionBeanRemote" %> <%@ page import = "javax.naming.*" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-31j"> <title>Insert title here</title> </head> <body> <% try { InitialContext ic = new InitialContext(); TestStatelessSessionBeanRemote StatelessSessionBean = (TestStatelessSessionBeanRemote)ic.lookup(TestStatelessSessionBeanRemote.class.getName()); String result = StatelessSessionBean.testString("DynWebTest"); out.println("<p>"); out.println("Result from EJB: " + result); out.println("<p>"); } catch (Exception ex) { out.println(ex.getMessage()); } %> </body> </html>
Memo
ステートフルセッションBean の場合、上記のソース中の、"Stateless" は、"Stateful" に変更してください。
SingletonセッションBean の場合、上記のソース中の、"Stateless" は、"Singleton" に変更してください。
また、動的Webプロジェクト名 "DynWebTest" も、実際のプロジェクト名に合わせて変更してください。
入力後のindex.jspファイルです。(ステートレスの場合)
図3.1.3.2-8
デプロイは、Webアプリケーションと、EJB アプリケーションを含む、Java EE アプリケーションとして行います。
Java EEアプリケーションの作成および、デプロイについては、Java EEアプリケーションのチュートリアルの
開発チュートリアルをご覧ください。
Memo
開発チュートリアルは、ここまでに説明した、
ステートレスセッションBean の場合を例に記載されています。
そのため、ステートレスセッションBean の場合は、そのままの手順に従って進める事が可能です。
一方、ステートフルやSingletonセッションBean の場合には、
・Java EE プロジェクト名(SampleApplication)
・Java EEモジュール依存関係での選択項目(DynWebTest, StatelessBeanSample)
を、ここまでに作成したステートフルやSingletonセッションBean の場合に合わせて、変更しながら進める必要があります。
配備した Java EE アプリケーションプロジェクトで動作確認を行います。
ツールバーメニューの Web ブラウザーを開く をクリックしてください。
開いたWeb ブラウザーのアドレスに「http://localhost/DynWebTest」を入力して、選択した URL へジャンプ をクリックしてください。(※ステートフルやSingletonの場合:"DynWebTest" は実際に作成した動的Webプロジェクト名に変更してください。)
図3.1.4-1
EJBで処理が行われ、Web ブラウザーに、以下の結果が表示されます。
図3.1.4-2
Webブラウザーからのアクセス以外にも、EJBテストクライアントからEJBにアクセスすることもできます。 その方法について説明します。
ステートレスセッションBeanの作成 で作成した EJB ステートレスセッションBeanを呼び出すテストクライアントアプリケーションを作成します。
EJB プロジェクト ウィザードを使用して、プロジェクトを作成します。
メニュー のファイル > 新規 > プロジェクト を選択して、新規プロジェクト画面を開きます。
EJB > EJB プロジェクト を選択して、次へをクリックします。
図3.1.5.1-1
新規 EJB プロジェクト 画面が表示されます。
プロジェクト名に作成するプロジェクト名、EJBTestを入力して、ターゲット・ランタイム で、 WebOTX Application Server v10.2(Local Default)を選択します。
EARにプロジェクトを追加をON にします。
EAR プロジェクト名 にEJBTestEARを入力します。
次へをクリックします。
ターゲット・ランタイム にWebOTXサーバーランタイムがない場合、WebOTXマニュアルWebOTXランタイムの設定 を参照の上、設定を行ってください。
図3.1.5.1-2
Java 画面が表示されます。
Java アプリケーションをビルドするためのプロジェクトを構成します。次へ をクリックします。
図3.1.5.1-3
EJB モジュール 画面が表示されます。
クライアントのインターフェースとクラスを持つ EJB クライアント JAR モジュールを作成する。をON にし、完了 をクリックすると、プロジェクトEJBTestが作成されます。
図3.1.5.1-4
WebOTXクライアントランタイムをクラスパスに追加します。EJBTestClientの右クリックメニュープロパティを選択します。
プロパティー画面で、Java のビルド・パス >
ライブラリーをクリックして、外部JARの追加...
をクリックします。
図3.1.5.1-5
JAR の選択ダイアログで、クラスパスを次のように設定します。
JARファイル名 |
---|
${INSTALL_ROOT}/lib/gf-client.jar |
${INSTALL_ROOT}は、WebOTXのインストールディレクトリです。
EJBTestClientプロジェクトにEJBクライアント用クラスを作成します。
メニューの ファイル > 新規 > その他... を選択して、 新規 ウィザード画面を表示します。
クラス を選択して、次へをクリックします。
図3.1.5.1-6
新規Javaクラス 画面が表示されます。
名前 に「EJBTestClient」を入力します。
パッケージ に、EJBのクラスと同じ「sample」を入力します。
public static void main(String[] args) をONにします。
完了をクリックします。
図3.1.5.1-7
EJBTestClient プロジェクトのプロパティーを開き、左側ツリー画面で Javaのビルド・パス を選択し、 右画面で プロジェクト タブを選択してから、追加をクリックします。
図3.1.5.1-8
ステートレスセッションBeanの作成 で作成したプロジェクトStatelessBeanSample(※ステートフルの場合:StatefulBeanSample Singletonの場合:SingletonBeanSample)をONにして、OKをクリックします。
図3.1.5.1-9
EJBTestClientのプロパティー画面で、OKをクリックします。
図3.1.5.1-10
EJBを呼び出す記述を行います。以下の例は、 ステートレスセッションBeanの作成 で作成したステートレスセッションBeanを呼び出します。 EJBを呼び出すには、InitialContextクラスのインスタンスを使います。このインスタンスのlookup メソッドを、 EJBインターフェイスの完全限定名を引数に渡して呼び出します。 これで、EJBインターフェイスを取得することができるので、あとは、このEJBインターフェイスを使ってEJBメソッドを呼び出します。
package sample; import javax.naming.InitialContext; public class EJBTestClient { public static void main(String[] args) { try { InitialContext ic = new InitialContext(); TestStatelessSessionBeanRemote statelessRemote =(TestStatelessSessionBeanRemote)ic.lookup(TestStatelessSessionBeanRemote.class.getName()); System.out.println("Return From StatelessRemote : = " +statelessRemote.testString("TestString")); } catch (Exception ex) { ex.printStackTrace(); } } }
Memo
ステートフルセッションBean の場合、上記のソース中の、"Stateless" および、"stateless" は、"Stateful"、"stateful" に変更してください。
SingletonセッションBean の場合、上記のソース中の、"Stateless" および、"stateless" は、"Singleton"、"Singleton" に変更してください。
実行構成を設定します。
メニューの実行 > 実行構成 を選択します。Javaアプリケーション > EJBTestClientを選択します。プロジェクトをEJBTestClient とし、メイン・クラスをsample.EJBTestClientと設定します。
図3.1.5.1-11
ビルドを実行してエラーが無ければ、EJBアプリケーションの準備は完了です。
EJBテストクライアントの作成で作成したテストクライアントアプリケーションを実行して、EJBの動作確認を行います。
EJBの配備:
ステートレスセッションBeanの作成で作成したStatelessBeanSampleをJava EEアプリケーションのチュートリアルの 開発チュートリアルに従って配備を行ってください。
テストクライアントの実行:
構成および実行を選択し、実行をクリックします。
図3.1.6-1
EJBで処理が行われ、コンソールに、以下の結果が表示されます。
図3.1.6-2
ここでは、文字列のやり取りを行うステートフルセッションBeanを作成します。
EJB プロジェクト生成ウィザードを使用して、EJB プロジェクトを作成します。
メニューの ファイル > 新規 > プロジェクトを選択して、 新規プロジェクト画面を開きます。
EJB > EJB プロジェクトを選択して、次へ をクリックします。
図3.1.7.1-1
新規 EJB プロジェクト 画面が表示されます。
プロジェクト名に作成するプロジェクト名StatefulBeanSampleを入力して、ターゲット・ランタイムにWebOTX Application Server v10.2(Local Default)を選択します。 次へ をクリックします。
ターゲット・ランタイムにWebOTXサーバーランタイムがない場合、WebOTXランタイムの設定 を参照の上、設定を行ってください。
図3.1.7.1-2
Java画面が表示されます。
次へ をクリックします。
図3.1.7.1-3
EJB モジュール画面が表示されます。
完了 をクリックします。
図3.1.7.1-4
StatefulBeanSampleプロジェクトが作成されます。
図3.1.7.1-5
プロジェクトのejbModule/META-INFフォルダ配下にMANIFEST.MFファイルが存在することを確認します。
EJB モジュール画面で、ejb-jar.xmlデプロイメント記述子の生成 がON の場合、META-INFフォルダ配下にejb-jar.xmlファイルも存在することを確認してください。
セッション Bean生成ウィザードを利用して、セッションBeanをプロジェクトに追加します。
メニューの ファイル > 新規 > その他 を選択すると、新規 画面が表示されます。
EJB > セッション Bean (EJB 3.x) を選択して、次へ をクリックします。
図3.1.7.2-1
EJB 3.x セッション Bean の作成画面が表示されます。
Java パッケージにsampleを入力し、
クラス名にTestStatefulSessionBeanを入力し、
状態タイプをステートフルに設定し、 ビジネス・インターフェースの作成のリモートをONにします。
次へをクリックします。
図3.1.7.2-2
次のEJB 3.x セッション Bean の作成画面で、完了 をクリックします。
図3.1.7.2-3
ステートフルセッションBeanのソースが追加されます。
図3.1.7.2-4
StatefulBeanSampleプロジェクトのejbModule配下にsampleというパッケージが追加されていることを確認します。
次にsampleパッケージ配下にTestStatefulSessionBeanRemote.javaとTestStatefulSessionBean.javaファイルが追加されていることを確認します。
以降の、StatefulBeanSampleプロジェクトの、メソッド作成から、デプロイおよび動作確認に至る手順は、 前述のステートレスセッションBeanでの、EJBメソッドの作成 〜 ステートレスセッションBeanの実行(Webアプリケーションからの呼び出し)と同様ですので、そちらを参照してください。
ただし、EJBテストクラインアントの作成時に、必要なプロジェクトの選択で、 ステートフルセッションBeanのStatefulBeanSampleを選択するなど、一部、読み替えが必要な箇所があります。
図3.1.7.2-5
それらに関しては、文中に、
(※ステートフルの場合:・・・)
という記載があるので、それに沿ってチュートリアルを進めてください。
デプロイは、Webアプリケーションと、EJB アプリケーションを含む、Java EE アプリケーションとして行います。
Java EEアプリケーションの作成および、デプロイについては、Java EEアプリケーションのチュートリアルの
開発チュートリアルを参照してください。
Memo
開発チュートリアルは、
ステートレスセッションBean の場合を例に記載されています。
そのため、ステートフルセッションBean の場合には、
・ Java EE プロジェクト名(SampleApplication)
・ Java EEモジュール依存関係での選択項目(DynWebTest, StatefulBeanSample)
を、ここまでに作成したステートフルセッションBean の場合に合わせて、変更しながら進める必要があります。
ここでは、文字列のやり取りを行うSingletonセッションBeanを作成します。
EJB プロジェクト生成ウィザードを使用して、EJB プロジェクトを作成します。
メニューの ファイル > 新規 > プロジェクトを選択して、 新規プロジェクト画面を開きます。
EJB > EJB プロジェクトを選択して、次へ をクリックします。
図3.1.10.1-1
新規 EJB プロジェクト 画面が表示されます。
プロジェクト名に作成するプロジェクト名SingletonBeanSampleを入力して、ターゲット・ランタイムにWebOTX Application Server v10.2(Local Default)を選択します。 次へ をクリックします。
ターゲット・ランタイムにWebOTXサーバーランタイムがない場合、WebOTXランタイムの設定 を参照の上、設定を行ってください。
図3.1.10.1-2
Java画面が表示されます。
次へ をクリックします。
図3.1.10.1-3
EJB モジュール画面が表示されます。
完了 をクリックします。
図3.1.10.1-4
SingletonBeanSampleプロジェクトが作成されます。
図3.1.10.1-5
プロジェクトのejbModule/META-INFフォルダ配下にMANIFEST.MFファイルが存在することを確認します。
EJB モジュール画面で、ejb-jar.xmlデプロイメント記述子の生成 がON の場合、META-INFフォルダ配下にejb-jar.xmlファイルも存在することを確認してください。
セッション Bean生成ウィザードを利用して、セッションBeanをプロジェクトに追加します。
メニューの ファイル > 新規 > その他 を選択すると、新規 画面が表示されます。
EJB > セッション Bean (EJB 3.x) を選択して、次へ をクリックします。
図3.1.10.2-1
EJB 3.x セッション Bean の作成画面が表示されます。
Java パッケージにsampleを入力し、
クラス名にTestSingletonSessionBeanを入力し、
状態タイプをSingletonに設定し、 ビジネス・インターフェースの作成のリモートをONにします。
次へをクリックします。
図3.1.10.2-2
次のEJB 3.x セッション Bean の作成画面で、完了 をクリックします。
図3.1.10.2-3
SingletonセッションBeanのソースが追加されます。
図3.1.10.2-4
SingletonBeanSampleプロジェクトのejbModule配下にsampleというパッケージが追加されていることを確認します。
次にsampleパッケージ配下にTestSingletonSessionBeanRemote.javaとTestSingletonSessionBean.javaファイルが追加されていることを確認します。
以降の、SingletonBeanSampleプロジェクトの、メソッド作成から、デプロイおよび動作確認に至る手順は、 前述のステートレスセッションBeanでの、EJBメソッドの作成 〜 ステートレスセッションBeanの実行(Webアプリケーションからの呼び出し)と同様ですので、そちらを参照してください。
ただし、EJBテストクラインアントの作成時に、必要なプロジェクトの選択で、 SingletonセッションBeanのSingletonBeanSampleを選択するなど、一部、読み替えが必要な箇所があります。
図3.1.10.2-5
それらに関しては、文中に、
(Singletonの場合:・・・)
という記載があるので、それに沿ってチュートリアルを進めてください。
デプロイは、Webアプリケーションと、EJB アプリケーションを含む、Java EE アプリケーションとして行います。
Java EEアプリケーションの作成および、デプロイについては、Java EEアプリケーションのチュートリアルの
開発チュートリアルを参照してください。
Memo
開発チュートリアルは、
ステートレスセッションBean の場合を例に記載されています。
そのため、SingletonセッションBean の場合には、
・ Java EE プロジェクト名(SampleApplication)
・ Java EEモジュール依存関係での選択項目(DynWebTest, SingletonBeanSample)
を、ここまでに作成したSingletonセッションBean の場合に合わせて、変更しながら進める必要があります。
otxadmin> create-jmsdest --desttype queue --cascade MyQueue詳細は、物理的な送信先の作成を参照してください。
otxadmin> create-jms-resource --restype javax.jms.QueueConnectionFactory jms/MyQCF詳細は、コネクションファクトリリソースの作成を参照してください。
ここでは、文字列のやり取りを行うメッセージ駆動型Beanを作成します。
EJBプロジェクト生成ウィザードを使用して、EJB プロジェクトを作成します。
メニューのファイル > 新規 > プロジェクトを選択して、新規プロジェクト画面を開きます。
EJB > EJB プロジェクトを選択して、次へ をクリックします。
図3.1.13.2-1
新規 EJB プロジェクト 画面が表示されます。
プロジェクト名に作成するプロジェクト名MessageDrivenBeanSampleを入力して、ターゲット・ランタイムにWebOTX Application Server v10.2(Local Default)を選択します。 次へ をクリックします。
ターゲット・ランタイムにWebOTXサーバーランタイムがない場合、WebOTXマニュアル WebOTXランタイムの設定 を参照の上、設定を行ってください。
図3.1.13.2-2
Java画面が表示されます。
次へ をクリックします。
図3.1.13.2-3
EJB モジュール画面が表示されます。
完了 をクリックします。
図3.1.13.2-4
プロジェクトMessageDrivenBeanSampleが作成されます。
図3.1.13.2-5
プロジェクトのMETA-INFフォルダ配下にMANIFEST.MFファイルが存在することを確認します。
EJB モジュール画面で、ejb-jar.xmlデプロイメント記述子の生成 がON の場合、META-INFフォルダ配下にejb-jar.xmlファイルも存在することを確認してください。
メッセージ駆動型 Bean生成ウィザードを利用して、Beanをプロジェクトに追加します。
メニューの ファイル > 新規 > その他 を選択すると、新規 画面が表示されます。
EJB > メッセージ駆動型 Bean (EJB 3.x) を選択して、次へ をクリックします。
図3.1.13.3-1
EJB 3.x メッセージ駆動型 Bean の作成画面が表示されます。
Java パッケージにsampleを入力し、
クラス名にTestMessageDrivenBeanを入力し、
JMSがONの状態のままで、宛先タイプをキューに設定し、次へをクリックします。
図3.1.13.3-2
次のEJB 3.x メッセージ駆動型 Bean の作成画面で、完了をクリックします。
図3.1.13.3-3
MessageDrivenBeanSampleプロジェクトにメッセージ駆動型Beanのソースが追加されます。
図3.1.13.3-4
EJBのメソッドの追加を行います。
ビジネスメソッドの実装
TestMessageDrivenBeanクラスに物理的な送信先の作成で作成したJMS キューを指定し、onMessageメソッドを実装します。
import javax.ejb.ActivationConfigProperty; import javax.ejb.MessageDriven; import javax.jms.JMSException; import javax.jms.Message; import javax.jms.MessageListener; import javax.jms.TextMessage; @MessageDriven( activationConfig = { @ActivationConfigProperty( propertyName = "destinationType", propertyValue = "javax.jms.Queue" ) }, mappedName = "jms/MyQueue") public class TestMessageDrivenBean implements MessageListener { /** * Default constructor. */ public TestMessageDrivenBean() { // TODO Auto-generated constructor stub } /** * @see MessageListener#onMessage(Message) */ public void onMessage(Message message) { // TODO Auto-generated method stub TextMessage msg = (TextMessage)message; try { System.out.println(msg.getText()+" come from MessageDrivenBean"); } catch (JMSException e) { e.printStackTrace(); } } }TestMessageDrivenBeanクラスは下図のようになります。
図3.1.13.4-1
図3.1.13.4-2
図3.1.13.5-1
図3.1.13.5-2
図3.1.13.5-3
JARファイル名 |
---|
${INSTALL_ROOT}/lib/gf-client.jar |
${INSTALL_ROOT}/lib/install/applications/jmsra/jmqra.jar |
EJBTestMDClientプロジェクトにクライアント用クラスを作成します。
メニューの ファイル > 新規 > その他... を選択して、新規 ウィザード画面を表示します。クラス を選択して、次へをクリックします。
図3.1.13.5-4
図3.1.13.5-5
package sample; import javax.jms.QueueConnection; import javax.jms.QueueConnectionFactory; import javax.jms.QueueSession; import javax.jms.TextMessage; import javax.naming.Context; import javax.naming.InitialContext; public class EJBTestMDClient { /** * @param args */ public static void main(String[] args) { send("TestString"); } public static void send(String msg) { try { Context ctx = new InitialContext(); QueueConnectionFactory factory = (QueueConnectionFactory) ctx .lookup("jms/MyQCF"); QueueConnection con = factory.createQueueConnection(); QueueSession session = con.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE); javax.jms.Queue destination = (javax.jms.Queue) ctx .lookup("jms/MyQueue"); javax.jms.QueueSender sender = session.createSender(destination); TextMessage message = session.createTextMessage(msg); sender.send(message); session.close(); con.close(); System.out.println("Success"); } catch (Exception e) { e.printStackTrace(); } } }EJBTestMDClientクラスは下図のようになります。
図3.1.13.5-6
図3.1.15-1
図3.1.15-2
TestString come from MessageDrivenBean${INSTALL_ROOT}は、WebOTXのインストールディレクトリです。