Servlet with Enterprise JavaBeanサンプル・プログラム
サンプル・プログラムのServlet with Enterprise JavaBeanを使用するには、次の項を参照してください。
このEnterprise JavaBean (EJBean)サンプル・パッケージには、Joltを使用するTuxedoサーバーへのEJBeanステートフル・セッションを設定し、実行するために必要なクラスおよびその他のファイルが含まれています。このパッケージのコンポーネントは以下のとおりです。
•
|
クライアント・アプリケーション(クライアント・アプリケーションのドキュメントとソース・コード)
|
•
|
Teller (リモート・インタフェースのドキュメントとソース・コード)
|
•
|
TellerHome (ホーム・インタフェースのドキュメントとソース・コード)
|
•
|
TellerResult (アプリケーション固有のユーティリティのドキュメントとソース・コード)
|
•
|
ProcessingErrorException (アプリケーション固有の例外処理のドキュメントとソース・コード)
|
•
|
TransactionErrorException (アプリケーション固有の例外処理のドキュメントとソース・コード)
|
•
|
TellerBean (EJBeanのドキュメントとソース・コード)
|
Servlet with JavaBeanサンプル・プログラムについて
このサンプル・プログラムでは、Enterprise JavaBean (EJBean)の機能を紹介し、Tuxedoサーバーにアクセスする単純なインタフェースの例を示します。このサンプル・プログラムのソース・コードは、Oracle Tuxedoの
/samples/jolt/wls/ejb/bankappディレクトリに収められています。
自分専用のEJBeanを作成する前にこのサンプル・プログラムを実行すると、ソースに記載される様々な手順が表示されます。サンプル・プログラムは、
TellerBeanというステートフル・セッションEJBeanで、Jolt for WebLogicを使用してTuxedoサーバーと通信し、次のトランザクションを実行します。
•
|
Tuxedoサーバーとコンタクトしてサービスを呼び出し、返された結果を取得する
|
•
|
アプリケーション定義の例外とユーティリティを使用する
|
•
|
クライアント・ブラウザ・アプリケーションを使用する
|
クライアント・ブラウザ・アプリケーションは次の手順を実行します。
1.
|
JNDIを通して出納係のホーム("TellerHome")にコンタクトし、EJBeanを検索します。
|
3.
|
作成された出納係に対して、アプリケーションは以下の一連のトランザクションを実行します。
|
•
|
トランザクション1:口座に$100を預け入れ、残高を表示します。
|
•
|
トランザクション2: $200の預け入れを行います(トランザクション限度額の$300を超える)。
|
注意:
|
トランザクション1では、単一の呼出しが行われ、自動的にコミットされます。トランザクション2では、 begin()と commit()で2つのリクエスト(預け入れと引出し)がまとめて処理されます。
|
•
|
口座の残高より$100多い金額の引出しを試みます。
|
•
|
ApplicationExceptionを取得し、例外に埋め込まれたステータス・メッセージを取得して、トランザクション2にロールバックします。
|
トランザクション2では、トランザクション1の終了時点の残高にロール・バックする方法が示されています。
Servlet with JavaBeanサンプル・プログラムを使用するための準備を行う
このサンプル・プログラムを最大限に活用するには、最初にソース・コード・ファイルを最後まで読み、内容を確認します。
DeploymentDescriptor.txtを起動し、EJBeanの全体構造を把握し、異なるオブジェクトとインタフェースに対してどのクラスが使用されているかを確認してから、
Client.javaを参照してアプリケーションがどのように機能するかを確認します。
以下の節では、このサンプル・プログラムの使用方法について詳しく説明します。
<StartupClass
ClassName="bea.jolt.pool.servlet.weblogic.PoolManagerStartUp"
FailureIsFatal="false"
Name="MyStartup Class"
Targets="myserver"
/>
<JoltConnectionPool
ApplicationPassword="tuxedo"
MaximumPoolSize="5"
MinimumPoolSize="3"
Name="MyJolt Connection Pool"
PrimaryAddresses="//TUXSERVER:6309"
RecvTimeout="300"
SecurityContextEnabled="true"
Targets="myserver"
UserName="joltuser"
UserPassword="jolttest"
UserRole="clt"
/>|
<ShutdownClass
ClassName=���bea.jolt.pool.servlet.weblogic.PoolManager
ShutDown.���
/>
WebLogic Serverの開発環境を構成したら、サンプル・プログラムを作成する必要があります。Oracle Joltでは、Windows 2003用とUNIX用のビルド・スクリプトが用意されています。
•
|
Windows 2003: %TUXDIR%¥samples¥jolt¥wls¥ejb¥ bankapp¥build.cmd
|
•
|
UNIX: $TUXDIR/samples/jolt/wls/ejb/bankapp/build.sh
|
これらのスクリプトによって、Windows 2003用のエントリなど、個々のサンプルが作成されます。
MicrosoftのJDK for Javaで作成するには、次のように指定します。
スクリプトによってサンプル・プログラムが作成され、Windows 2003システムでは以下に示すデフォルトのWebLogic Serverディレクトリにファイルがインストールされます。
•
|
クライアント・ファイル: d:¥bea¥wlserver6.1¥config¥examples
|
•
|
EJBean: d:¥bea¥wlserver6.1¥config¥mydomain¥applications
|
Servlet with JavaBeanサンプル・プログラムを実行する
デフォルトの
\config\mydomainディレクトリでWebLogic Serverを起動すると、サンプル・プログラムのEJBeanが
\applicationsディレクトリに自動的にデプロイされます。
1.
|
\config\mydomainディレクトリでWebLogic Serverを起動します。EJBeanが正しくデプロイされていることを確認するには、サーバーのコマンド行ウィンドウをチェックするか、Consoleを開いてDeploymentsの下のEJBを調べます。 ejb.jolt.bankappがデプロイされ、そのアクティビティがモニター可能になっている必要があります。
|
2.
|
別のコマンド行ウィンドウを開き、次のコマンドを入力してクライアントを実行します。
|
$ java examples.jolt.ejb.bankapp.Client
WebLogic Serverをデフォルト設定で実行していない場合、次のコマンド行を使用する必要があります。
$ java examples.jolt.ejb.bankapp.Client "t3://
WebLogicURL:Port"
•
|
WebLogicURL - WebLogic Serverのドメイン・アドレス
|
•
|
Port - 接続をリスニングするポート( weblogic.system.ListenPort)
|
次のオプション・パラメータは、クライアントによって上から順に解釈されます。
•
|
url - サーバーのURL ( t3://localhost:7001など)。
|
•
|
password - ユーザー・パスワード。デフォルトはNULL。
|
3.
|
Clientサンプルを実行している場合、クライアント・アプリケーションから次のような出力が返されます。
|
4.Beginning jolt.bankapp.Client...
5.
6.Created teller Terry
7.
8.Getting current balance of Account 10000 for Erin
9.Balance: 27924.02
10.
11.Start Transaction 1 for Erin
12.
13.Depositing 100.0 for Erin
14.Balance: 28024.02
15.
16.End Transaction 1 for Erin
17.
18.Start Transaction 2 for Erin
19.
20.Depositing 200.0 for Erin
21.Balance: 28224.02
22.
23.Withdrawing 28324.02 for Erin
24.Transaction error:
25. examples.jolt.ejb.bankapp.TransactionErrorException: Teller error: application
26. exception:
27.Account Overdraft
28.
29.Rolling back transaction for Erin
30.
31.End Transaction 2 for Erin
32.
33.Getting final balance of Account 10000 for Erin
34.Balance: 28024.02
35.
36.Removing teller Terry
37.
End jolt.bankapp.Client...
注意:
|
トランザクション2が トランザクション1の終了時点の残高にロールバックされ、最終的な残高が表示されていることに注意してください。
|
EJBの詳細は、
WebLogic Enterprise JavaBeansのプログラミングを参照してください。Oracle Joltの使用方法については、
Oracle Joltの使用を参照してください。