以前はアドオンとして使用可能であったJoltBeansは、現在はOracle Joltに組み込まれており、JavaBeansと同じぐらい簡単に使用できます。これらは、Java開発環境でJoltクライアントを構成するために使用するJavaBeansコンポーネントです。
Symantec Visual Caféなどの一般的なJava対応開発ツールを使用して、クライアント・アプリケーションをグラフィカルに構成できます。JoltBeansにはOracle JoltとのJavaBeans準拠インタフェースが用意されています。コードを記述しなくても、フル機能を備えたOracle Joltクライアントを開発できます。
JoltBeansは、2つのJava Beansセットで構成されています。1つ目のセットは、Jolt APIのBeansバージョンであるJoltBeansツールキットです。2つ目のセットは、Jolt対応AWT BeansとJolt対応Swing Beansを含むGUI Beansで構成されます。これらのGUIコンポーネントは、Java AWT標準コンポーネントおよびSwing標準コンポーネントの一部をJolt対応バージョンにしたものであり、最小限のコーディングまたはコーディングなしでJoltクライアントGUIを構築することを可能にします。
JoltBeansは、開発ツールのコンポーネント・パレットから作成中のJoltクライアント・アプリケーションのJavaフォームにドラッグ・アンド・ドロップできます。Beansのプロパティを移入し、アプリケーションやアプレットの各種のBeans間のイベント・ソース・リスナーの関係をグラフィカルに設定できます。通常は開発ツールを使用してイベントのフックアップ・コードを生成しますが、フックアップを手動でコーディングすることもできます。JoltBeansを使用したクライアント開発では、Oracle Tuxedoサービス・メタデータ・リポジトリと統合されるため、使用可能なOracle Tuxedo機能に簡単にアクセスできます。
注意:
|
現在、Oracleで動作が保証されているJoltBeans用の統合開発環境は、Symantec Visual Café 3.0のみです。ただし、JoltBeansは別のJava開発環境(Visual Ageなど)とも互換性があります。
|
JoltBeansツールキットを使用する場合は、JavaBeans対応の統合開発環境(IDE)を熟知しておくことをお薦めします。この章のウォークスルーでは、SymantecのVisual Café 3.0の統合開発環境に基づいてサンプル・アプレットを作成する基本的な手順を示しています。
JoltBeansの使用に関連する用語は、次のとおりです。
移植性があり、プラットフォームに依存しない再利用可能なソフトウェア・コンポーネントであり、開発環境でグラフィカルに表示されます。
2つのJava Beansセット(JoltBeansツールキットおよびJolt対応GUI Beans)。
JoltBeansと通信するJava GUIクラス。通信の手段として、JoltBeansにより提供されるJavaBeansイベント、メソッドおよびプロパティがあります。
JoltInputEventのソース、JoltOutputEventのリスナー、またはその両方であるBean。Jolt対応Beanは、Beanのガイドラインに準拠したカスタムGUI要素のサブセットです。
GUIコンポーネント(Abstract Window Toolkit (AWT)およびSwing)の2つのパッケージで、どちらにもJoltList、JoltCheckBox、JoltTextField、JoltLabelおよびJoltChoiceコンポーネントが含まれます。
JavaBeansに準拠したOracle Joltとのインタフェースであり、JoltServiceBean、JoltSessionBeanおよびJoltUserEventBeanが含まれます。
あるBeanが別のBeanからのイベントのリスナーとして登録されるように、Beanどうしを結び付けるプロセス。
JoltBeansを使用するには、JoltBeansを含むようにJava開発環境を設定しておく必要があります。
•
|
すべてのJoltクラスが含まれるように開発環境の CLASSPATHを設定します。
|
•
|
開発環境のコンポーネント・ライブラリにJoltBeansを追加します。
|
CLASSPATHの設定方法は、使用している開発環境によって異なります。
JoltBeansには、すべてのJoltBeansが含まれる
.jarファイル・セットが含まれています。これらの
.jarファイルをJava開発環境に追加すると、Javaツールのコンポーネント・ライブラリ内でJoltBeansが使用可能になります。たとえば、Symantec Visual Caféを使用する場合、Visual Caféの「Component Library」ウィンドウに
.jarファイルが表示されるように
CLASSPATHを設定できます。これらの
.jar ファイルの
CLASSPATHは、開発環境で1回設定するだけです。これらの
.jarファイルを開発環境の
CLASSPATHに設定した後は、JoltBeansをコンポーネン・ライブラリに追加できます。あとは、Joltクライアント・アプリケーションを開発するJavaフォームにJoltBeanを直接ドラッグ・アンド・ドロップするだけです。
Java開発環境の
CLASSPATHを設定するには、ご使用の開発環境の製品ドキュメントに記載された手順に従ってください。開発ツールのIDEから、
jolt.jarファイルが置かれているディレクトリに移動します。
jolt.jarファイルは通常、
%TUXDIR%\udatadoj\joltというディレクトリ内にあります。
jolt.jarファイルには、Joltの主要なクラスが含まれています。これらのクラスが含まれるように
CLASSPATHを設定してください。JoltBean
.jarファイルを
CLASSPATHに追加する必要はありません。これらのファイルは、IDEにコンポーネントとして追加するのみで使用できます。
Joltクラスが含まれるように
CLASSPATHを設定した後は、開発環境のコンポーネント・ライブラリにJoltBeansを追加できます。コンポーネント・ライブラリへの移入手順は、ご使用の開発環境のドキュメントを参照してください。
JoltBeansを含む
.jarファイルには、開発バージョンと実行時バージョンの2つのバージョンがあります。開発バージョンのJoltBeanの名前にはそれぞれ、接尾辞
Devが付きます。実行時バージョンのクラスの名前にはそれぞれ、接尾辞
Rtが付きます。たとえば、JoltBeanクラスの場合、開発バージョンは
JoltBeanDevとなり、実行時バージョンは
JoltBeanRtとなります。
開発プロセス中は、開発バージョンのJoltBeansを使用してください。開発JoltBeansには、グラフィックIDEでの開発に役立つ追加のプロパティが用意されています。たとえば、JoltBeansのグラフィック・プロパティ(bean information)を使用すると、開発環境でJoltBeansをグラフィック・アイコンとして操作できます。
実行時バージョンのJoltBeansには、このような追加のプロパティはありません。実行時には、Beansの追加の開発プロパティは必要ありません。ランタイムBeansは、開発バージョンのJoltBeansの簡易版です。
開発環境でアプリケーションをコンパイルすると、開発Beansを使用してコンパイルされます。ただし、開発環境外部でコマンド行からコンパイルを実行する場合は、アプリケーションのコンパイル時にランタイムBeansが使用されるように
CLASSPATHを設定することをお薦めします。
JoltBeansの基本的な使用手順は次のとおりです。
2.
|
Joltクライアント・アプリケーションまたはアプレット用に、開発環境のJoltBeansコンポーネント・パレットからJavaフォーム・デザイナにBeansをドラッグします。
|
3.
|
Beansのプロパティを移入し、アプリケーションまたはアプレットのBeans間のイベントソース・リスナーの関係を設定します(Beansどうしを関連付けます)。開発ツールによって、イベントのフックアップ・コードが生成されます。
|
4.
|
イベント・コールバックにアプリケーション・ロジックを追加します。
|
これらの手順については、以降の各項で詳しく説明します。JoltBeansのウォークスルーでは、例を示しながらこれらの手順について説明します。
JavaBeansイベントとOracle Tuxedoイベント
JavaBeansはイベントを介して通信します。Oracle TuxedoシステムとJavaBeans環境では、イベントの概念が異なります。Oracle Tuxedoアプリケーションでは、イベントはアプリケーションのある部分で発生し、同じアプリケーションの他の部分に通知されます。JoltBeansイベントは複数のBean間で伝達されます。
JoltBeansでOracle Tuxedoのイベント・サブスクリプションとイベント通知を使用する
Oracle Tuxedoでは、ブローカ・イベント通知および非請求イベント通知がサポートされています。Joltには、JoltクライアントがOracle Tuxedoイベントを受信するためのメカニズムが備わっています。JoltBeansにもこの機能が備わっています。
注意:
|
Oracle Tuxedoのイベントのサブスクリプションおよび通知は、JavaBeansのイベントとは異なります。
|
次の手順では、JoltBeansアプリケーションでOracle Tuxedoの非同期通知メカニズムがどのように使用されるかを示します。
1.
|
JoltUserEventBeanの setEventName()メソッドおよび setFilter()メソッドを使用して、サブスクライブするOracle Tuxedoイベントを指定します。
|
2.
|
イベント通知を受信するコンポーネントは、自身をJoltOutputListenerとしてJoltSessionBeanに登録します。
|
3.
|
JoltUserEventBeanで subscribe()メソッドがコールされます。
|
4.
|
実際のOracle Tuxedoイベント通知が到着すると、JoltSessionBeanは serviceReturned()をコールして、JoltOutputEventをそのリスナーに送信します。JoltOutputEventオブジェクトにはOracle Tuxedoイベントのデータが含まれています。
|
クライアントはイベントを受信する必要がなくなると、JoltUserEventBeanで
unsubscribe()をコールします。
注意:
|
クライアントが非請求型イベントのみにサブスクライブする場合は、プロパティ・シートを使用して設定できる setEventName ("\\.UNSOLMSG")を使用します。 EventNameと Filterは、JoltUserEventBeanのプロパティです。
|
JoltBeansにおけるJavaBeansイベント
JoltBeansを使用して作成されたJoltクライアントのアプレットやアプリケーションは通常、Jolt対応GUI Beans (JoltTextFieldやJoltList)とJoltBeans (JoltServiceBeanやJoltSessionBean)で構成されています。Bean間での通信は主に、JavaBeansイベントを介して行われます。
Jolt対応Beansは、JoltInputEventのソース、JoltOutputEventのリスナー、またはその両方です。JoltServiceBeansは、JoltOutputEventのソースおよびJoltInputEventのリスナーです。
Jolt対応GUI Beansはプロパティとメソッドを公開しているため、Beansを(JoltServiceBeanで表される)Oracle Tuxedoサービスのパラメータに直接リンクできます。Jolt対応Beansは、内容が変更された場合、JoltInputEventを介してJoltServiceBeanに通知します。JoltServiceBeanは、サービス・コールの後で応答データが使用可能になると、登録されているすべてのJolt対応BeansにJoltOutputEventを送信します。Jolt対応GUI Beansには、サービスの対応する出力パラメータで内容を更新するロジックが含まれています。
図5-1は、JoltBeans間の関係を表しています。
JoltBeansツールキットには、次のBeansが含まれています。
これらのコンポーネントは、一般的なJavaBeanの機能(再利用が簡単、開発をグラフィカルに行うことができる、など)をすべて備えた状態でJoltクラス・ライブラリ全体をBeansコンポーネントに変換します。
JoltBeansのクラス、コンストラクタおよびメソッドの詳細は、オンラインのOracle Jolt APIリファレンスを参照してください。
次の各項では、各Beanのプロパティについて説明します。
JoltSessionBeanはOracle Tuxedoセッションを表し、JoltSessionクラス、JoltSessionAttributeクラスおよびJoltTransactionクラスの機能をカプセル化します。JoltSessionBeanには、Oracle Tuxedoセッションをオープンまたはクローズするメソッドに加え、タイムアウトやOracle Tuxedoユーザー名などのセッション属性やセキュリティ属性の設定に使用するプロパティがあります。
JoltSessionBeanは、Oracle Tuxedoセッションが確立またはクローズされるときにPropertyChangeイベントを送信します。PropertyChangeは、
java.beansパッケージ内で定義されている標準的なBeanイベントです。このイベントの目的は、ソースBean内のプロパティ値の変更を他のBeanに通知することです。この場合、ソースはJoltSessionBean、ターゲットはJoltServiceBeansまたはJoltUserEventBeans、プロパティ変更はJoltSessionBeanのLoggedOnプロパティです。ログオンが成功してセッションが確立されると、LoggedOnは
trueに設定されます。ログオフが成功してセッションがクローズすると、LoggedOnプロパティは
falseに設定されます。
JoltSessionBeanには、
beginTransaction()、
commitTransaction()、
rollbackTransaction()など、トランザクションを制御するためのメソッドが用意されています。
表5-1に、JoltSessionBeanのプロパティとその説明を示します。
表5-1
JoltSessionBeanのプロパティおよび説明
|
|
|
JSLまたはJoltリレーのIPアドレス(ホスト名)およびポート番号を設定します。形式は //host:port number
です( myhost:7000など)。
|
|
必要に応じて、ログオン時に使用するOracle Tuxedoアプリケーション・パスワードを設定します。
|
|
|
|
トランザクションが開始され、コミットも中止もされていない場合は trueを示し、それ以外の場合は falseを示します。
|
|
Oracle Tuxedoセッションが存在する場合は true、存在しない場合は falseを示します。
|
|
|
|
|
|
|
|
必要な場合、Oracle Tuxedoユーザー名を示します。
|
|
必要な場合、Oracle Tuxedoユーザー・パスワードを示します。
|
|
必要な場合、Oracle Tuxedoユーザー・ロールを示します。
|
JoltServiceBeanはリモートのOracle Tuxedoサービスを表します。サービス名は、JoltServiceBeanのプロパティとして設定されます。JoltServiceBeanは、他のBeanからのJoltInputEventをリスニングし、その入力バッファを設定します。JoltServiceBeanには、サービスを起動するための
callService()メソッドがあります。JoltServiceBeanは、サービスの出力情報を伝達するJoltOutputEventのイベント・ソースです。
callService()が成功すると、応答メッセージを伝達するJoltOutputEventを介してイベント・リスナーBeanに通知されます。
JoltServiceBeanの基礎となるメッセージ・バッファの変更および問合せには通常はイベントが使用されますが、JoltServiceBean には基礎となるメッセージ・バッファに直接アクセスするためのメソッド(
setInputValue(…)や
getOutputValue(…)など)も用意されています。
表5-2に、JoltServiceBeanのプロパティとその説明を示します。
表5-2
JoltServiceBeanのプロパティおよび説明
|
|
|
このJoltServiceBeanによって表されるOracle Tuxedoサービスの名前。
|
|
Oracle Tuxedoクライアント・セッションへのアクセスを可能にする、Beanに関連付けられたJoltSessionBean。
|
|
このJoltServiceBeanをJoltSessionBeanにより開始されたトランザクションに含める場合は、 trueに設定します。
|
JoltUserEventBeanは、Oracle Tuxedoイベントへのアクセスを提供します。サブスクライブまたはサブスクライブ解除するOracle Tuxedoイベントを定義するには、このBeanの適切なプロパティ(イベント名およびイベント・フィルタ)を設定します。実際のイベント通知は、JoltSessionBeanからJoltOutputEvent形式で送信されます。
表5-3に、JoltUserEventBeanのプロパティとその説明を示します。
表5-3
JoltUserEventBeanのプロパティおよび説明
|
|
|
Beanで表されるユーザー・イベントの名前を設定します。
|
|
|
|
Oracle Tuxedoクライアント・セッションへのアクセスを可能にする、Beanに関連付けられたJoltSessionBean。
|
Jolt対応GUI BeansはJava AWT Beansと Swing Beansで構成されており、Java Abstract Windowing Toolkitを継承しています。次が含まれます:
注意:
|
コンパイル時のエラーを回避するため、2つのパッケージからのBeanを組み合せて使用するのではなく、AWT BeanどうしまたはSwing Beanどうしで使用することをお薦めします。
|
これは、
java.awt.TextFieldおよびSwing
JTextfieldをJolt対応に拡張したものです。JoltTextFieldにはサービスへの入力の一部が含まれています。JoltServiceBeanはJoltTextFieldによって発生したイベントをリスニングできます。JoltTextFieldは、内容が変更されるとリスナー(通常はJoltServiceBean)にJoltInputEventを送信します。
JoltTextField はサービスからの出力を表示します。この場合、JoltTextFieldはJoltServiceBeanからJoltOutputEventをリスニングし、リンクされたフィールドのオカレンスに従ってその内容を更新します。
これは
java.awt.LabelおよびSwing
JLabelをJolt対応に拡張したものであり、JoltFieldNameプロパティによってJolt出力バッファ内の特定のフィールドにリンクされています。フィールドが複数のオカレンスを持つ場合、このtextfieldがリンクされるオカレンスは、このBeanのoccurrenceIndexプロパティによって指定されます。JoltLabelをJoltServiceBeanに接続して、サービスからの出力を表示できます。JoltLabelはJoltServiceBeanからJoltOutputEventをリスニングし、リンクされたフィールドのオカレンスに従ってその内容を更新します。
これは、
java.awt.ListおよびSwing
JlistをJolt対応に拡張したものであり、JoltFieldNameプロパティによってJoltの入力バッファまたは出力バッファ内の特定のJoltフィールドにリンクされています。Jolt入力バッファ内でフィールドが複数のオカレンスを持つ場合、このリストがリンクされるオカレンスは、このBeanのoccurrenceIndexプロパティによって指定されます。JoltListは次の2通りの方法でJoltServiceBeanに接続できます。
•
|
JoltListにはサービスの入力の一部が含まれています。JoltServiceBeanはJoltListによって発生したイベントをリスニングします。JoltListはlistboxの選択内容が変わると、そのリスナーにJoltInputEventを送信します。この場合、JoltInputEventには選択したアイテムの単一の値が移入されます。
|
•
|
JoltListはサービスからの出力を表示します。サービスの出力表示にJoltListが使用されると、JoltListはJoltServiceBeanからJoltOutputEventをリスニングし、リンクされたフィールドのすべてのオカレンスに従ってその内容を更新します。
|
JoltCheckboxは、
java.awt.Checkboxおよび Swing
JCheckBoxをJolt対応に拡張したものであり、JoltFieldNameプロパティによってJolt入力バッファ内の特定のフィールドにリンクされています。フィールドが複数のオカレンスを持つ場合、このcheckboxがリンクされるオカレンスは、このBeanのoccurrenceIndexプロパティによって指定されます。
JoltCheckboxをJoltServiceBeanと接続して、サービスの入力の一部を含めることができます。JoltServiceBeanはJoltCheckboxによって発生したイベントをリスニングできます。checkboxの選択内容が変わると、JoltCheckboxはリスナー(通常はJoltServiceBean)にJoltInputEventを送信します。この場合、JoltInputEventは、チェックボックスが選択されていればStringデータ型の
TrueValueプロパティで設定され、チェックボックスが選択されていなければ
FalseValueプロパティで設定されます。
JoltChoiceは、
java.awt.ChoiceおよびSwing
JChoiceをJolt対応に拡張したものであり、JoltFieldNameプロパティによってJolt入力バッファ内の特定のフィールドにリンクされています。フィールドが複数のオカレンスを持つ場合、このchoiceがリンクされるオカレンスは、このBeanのoccurrenceIndexプロパティによって指定されます。
JoltChoiceをJoltServiceBeanと接続して、サービスの入力の一部を含めることができます。JoltServiceBeanはJoltChoiceによって発生したイベントをリスニングできます。choiceboxの選択内容が変わると、JoltChoiceはリスナー(通常はJoltServiceBean)にJoltInputEventを送信します。この場合、JoltInputEventは選択されたアイテムの単一の値で設定されます。
注意:
|
これらのクラスの詳細は、Oracle Jolt APIリファレンスを参照してください。
|
プロパティ・リストとプロパティ・エディタによるJoltBeansプロパティの変更
ほとんどのJoltBeansプロパティの値は、次の
「プロパティ・リスト: 「...」ボタン」の図に示す統合開発環境(IDE)(Visual Caféなど)のプロパティ・リストで、右側の列を編集することにより変更できます。
JoltBeansの一部のプロパティに対しては、カスタム・プロパティ・エディタが用意されています。
カスタム・プロパティ・エディタにはプロパティ・リストからアクセスでき、プロパティ値の変更に使用するダイアログ・ボックスがあります。カスタム・プロパティ・エディタを起動するには、対応するプロパティ値の隣にある「...」ボタンをクリックします。
「...」ボタンをクリックすると、
図5-3に示すようなプロパティ・エディタが表示されます。
![](images/poped2.gif)
.
JoltBeansのカスタム・プロパティ・エディタは、キャッシュされた情報を読み取ります。最初はキャッシュされた情報がないため、プロパティ・エディタを初めて使用するときは、このダイアログ・ボックスには何も表示されません。Oracle Tuxedoサービス・メタデータ・リポジトリにログオンし、リポジトリからプロパティ・エディタ・キャッシュをロードします。
JoltBeansクラス・ライブラリのウォークスルー
このウォークスルーでは、次の目的で使用するアプレットの作成方法について説明します。
図5-4は、JoltBeansを含む完成したJavaフォームの例を示しています。このアプレットにより、Oracle Tuxedoに組み込まれているBANKAPPサンプルのINQUIRYサービスのクライアント機能が実装されます。このサンプルを実行するには、Oracle Tuxedoサーバーが実行されている必要があります。
|
|
アプレット(JFCアプレットが選択された場合はJApplet)
|
開発環境でBeanをペイントするときに使用するフォーム。
|
|
Oracle Tuxedoセッションにログオンします。
|
|
ユーザーから入力を取得します(この場合はACCOUNT_ID)。
|
|
|
|
Oracle Tuxedoサービスにアクセスします。(この場合、BANKAPPからINQUIRY)。
|
|
|
|
|
この例は、Visual Café 3.0の統合開発環境(IDE)を使用して作成されたサンプル・フォームです。この例は、口座IDを入力し、Oracle Tuxedoサービスを使用して口座残高を取得して表示するためのアプレットの作成方法を示しています。
このサンプルを作成するには、次の基本手順に従います。
1.
|
Visual Caféで、「File」 →「New Project」を選択し、JFCアプレットまたはAWTアプリケーションを選択します。この手順により、JoltBeansのドロップ先の基本的なフォーム・デザイナが提供されます。
|
2.
|
アプレットで使用したいすべてのJoltBeansをコンポーネント・ライブラリからフォーム・デザイナにドラッグ・アンド・ドロップします。
|
3.
|
プロパティ・リストまたはカスタム・プロパティ・エディタを使用して、Beanを変更またはカスタマイズします。
|
4.
|
インタラクション・ウィザードを使用してBeanを関連付けます。
|
これらの手順は、次の項でさらに詳しく説明されます。
注意:
|
以前のVisual Caféのバージョンに用意されていたグラフィカル・インタフェースは、Visual Café 3.0のインタフェースとは異なります。このサンプル・アプレットは、以前のバージョンのVisual Caféを使って作成することもできますが、インタラクション・ウィザードでの手順が若干異なります。
|
JoltBeansをフォーム・デザイナ上に配置する
1.
|
「File」 →「New Project」を選択し、「JFC Applet」を選択します。
|
2.
|
Beansをコンポーネント・ライブラリからフォーム・デザイナのパレットにドラッグ・アンド・ドロップします( 図5-5を参照)。
|
3.
|
各Beanのプロパティを設定します。ボタン、ラベルまたはフィールドの変更やカスタマイズを行うには、プロパティ・リストを使用します。カスタム・プロパティ・エディタを使用するJoltBeansもあります。
|
4.
|
たとえば、JoltTextFieldのJoltFieldNameプロパティをACCOUNT_IDに設定します。
|
表5-5に、設定する必要があるプロパティ値を示します。
太字および
イタリックのテキストで示した値は必須値であり、普通の文字で示した値は推奨値です。
注意:
|
この例では、occurrenceIndexのデフォルト値0は両方のJoltTextFieldに有効です。
|
5.
|
JoltFieldNameのプロパティ値を変更するには、プロパティ・リストのJoltFieldNameの「...」ボタンをクリックします。
|
6.
|
新しいフィールド名(この例では「ACCOUNT_ID」)を選択または入力して、 「OK」をクリックします。
|
注意:
|
カスタム・プロパティ・エディタに表示されるプロパティはローカルにキャッシュされます。そのため、元のデータベースが変更された場合は、「リフレッシュ」ボタンを押さないと、最新の使用可能なプロパティが表示されません。
|
すべてのBeanがフォーム上に配置され、プロパティを設定した後、それらのイベントを関連付けます。次の
「JoltBeansを関連付ける順序」は、Beanを関連付ける際の手順の例を示しています。
Beanをワイヤリングすると、様々なフォームのBean間のイベント・ソースとイベント・リスナーの関係を確立できます。たとえば、JoltServiceBeanはボタンのActionEventのリスナーであり、このイベントをリスニングしたときに
callService()を呼び出します。Visual Caféのインタラクション・ウィザードを使ってBeanどうしを関連付けてください。
図5-10は、このサンプル・アプレットを作成するためにBeanを関連付ける順序を示しています。この図の中の数字は、続く手順説明の番号と対応しています。
ステップ1: JoltSessionBeanとログオンを関連付ける
1.
|
「フォーム・デザイナ」ウィンドウで、「インタラクション・ウィザード」ボタンをクリックします。
|
2.
|
アプレット・ウィンドウ内をクリックしてJoltSessionBeanにドラッグします( 図5-11を参照)。
|
「What event in JApplet1 do you want to start the interaction?」というメッセージが表示されます。
3.
|
「Interaction Wizard」ウィンドウでインタラクションを開始するイベントとして「ComponentShown」を選択します( 図5-12を参照)。
|
「What do you want to happen when Japplet1 fires componentShown event?」というメッセージが表示されます。
5.
|
「Perform an action」ラジオ・ボタンを選択し、 「Logon to the TUXEDO system」を選択します( 図5-13を参照)。
|
ステップ2: propertyChangeを使用してJoltSessionBeanをJoltServiceBeanに関連付ける
1.
|
Visual Caféの「フォーム・デザイナ」ウィンドウのツールバーで「Interaction Tool」アイコンをクリックします。
|
2.
|
JoltSessionBeanをクリックしてJoltServiceBeanにドラッグします( 図5-14を参照)。
|
「What event in joltSessionBean1 do you want to start the interaction?」というメッセージが表示されます。
3.
|
インタラクションを開始するイベントとして 「propertyChange」を選択します( 図5-15を参照)。
|
「What do you want to happen when joltSessionBean1 fires propertyChange event?」というメッセージが表示されます。
5.
|
メソッドとして 「Handle a Jolt property change event」を選択します( 図5-16を参照)。
|
「How do you want to supply the parameter to this method?」というメッセージが表示されます。
使用可能なオブジェクトとアクションの一覧が表示されます。
7.
|
次の図のように、アクションを実行するオブジェクトとして 「joltSessionBean1」を選択します。
|
8.
|
アクションとして 「Get the current Property Change Event」オブジェクトを選択します( 図5-17を参照)。
|
ステップ3: JoltInputEventを使用して入力項目accountIDのJoltTextFieldをJoltServiceBeanに関連付ける
1.
|
Visual Caféの「フォーム・デザイナ」ウィンドウで「インタラクション・ウィザード」アイコンをクリックします。
|
2.
|
「accountID JoltTextfield Bean」を選択し、そのままJoltServiceBeanへドラッグします。
|
次の図のように、「インタラクション・ウィザード」ウィンドウが表示されます。
「What event in accountId do you want to start the interaction?」というメッセージが表示されます。
3.
|
イベントとして 「dataChanged」を選択します( 図5-18を参照)。
|
「What do you want to happen when accountId fires dataChanged event?」というメッセージが表示されます。
5.
|
次の図のように、パラメータを実行するオブジェクトとしてjoltServiceBeanの 「inquiry」を選択します。
|
6.
|
アクションとして 「Handle a jolt input event」を選択します( 図5-19を参照)。
|
「How do you want to supply the parameter to this method?」というメッセージが表示されます。
使用可能なオブジェクトとアクションの一覧が表示されます。
8.
|
次の図のように、オブジェクトとして 「accountId」を選択します。
|
9.
|
アクションとして 「get the current Jolt Input Event」を選択します( 図5-20を参照)。
|
ステップ4: JoltActionを使用してボタンをJoltServiceBeanに関連付ける
1.
|
Visual Caféの「フォーム・デザイナ」ウィンドウで「インタラクション・ウィザード」アイコンをクリックします。
|
2.
|
「Inquiry」ボタンをクリックし、JoltServiceBeanへドラッグします。
|
次の図のように、「インタラクション・ウィザード」ウィンドウが表示されます。
「What event in button1 do you want to start the interaction?」というメッセージが表示されます。
3.
|
イベントとして 「actionPerformed」を選択します( 図5-21を参照)。
|
「What do you want to happen when button1 fires actionPerformed event?」というメッセージが表示されます。
5.
|
次の図のように、オブジェクトとして 「inquiry」を選択します。
|
6.
|
アクションとして 「Invoke the TUXEDO Service represented by this Bean」を選択します( 図5-22を参照)。
|
ステップ5: JoltOutputEventを使用してJoltServiceBeanをBalanceのJoltTextFieldに関連付ける
1.
|
Visual Caféの「フォーム・デザイナ」ウィンドウで「インタラクション・ウィザード」アイコンをクリックします。
|
2.
|
「JoltServiceBean」を選択して、「AmountJoltTextField Bean」へドラッグします。
|
次の図のように「インタラクション・ウィザード」ウィンドウが表示されます。
「What event in inquiry do you want to start the interaction?」というメッセージが表示されます。
3.
|
イベントとして 「serviceReturned」を選択します( 図5-23を参照)。
|
「What do you want to happen when inquiry fires serviceReturned event?」というメッセージが表示されます。
5.
|
次の図のように、オブジェクトとして 「balance」を選択します。
|
6.
|
アクションとして 「Handle a service returned event...」を選択します(次の図を参照)。
|
「How do you want to supply the parameter to this method?」というメッセージが表示されます。
8.
|
次の図のように、オブジェクトとして 「inquiry」を選択します。
|
9.
|
アクションとして 「Get the JoltOutputEvent」オブジェクトを選択します( 図5-25を参照)。
|
ステップ6: JoltSessionBeanとログオフを関連付ける
1.
|
Visual Caféの「フォーム・デザイナ」ウィンドウで「インタラクション・ウィザード」アイコンをクリックします。
|
2.
|
アプレット・ウィンドウの一点をクリックし(Beanはクリックしない)、そのままJoltSessionBeanへドラッグします。
|
次の図のように「インタラクション・ウィザード」ウィンドウが表示されます。
「What event in JApplet1 do you want to start the interaction?」というメッセージが表示されます。
3.
|
イベントとして 「componentHidden」を選択します( 図5-26を参照)。
|
「What do you want to happen when JApplet1 fires componentHidden event?」というメッセージが表示されます。
5.
|
アクションを実行するオブジェクトとして 「joltSessionBean1」を選択します。
|
6.
|
アクションとして 「Logoff from the TUXEDO system」を選択します( 図5-27を参照)。
|
JoltBeansどうしをワイヤリングした後、アプレットをコンパイルします。また、例外処理用に空のキャッチ・ブロックに値を入力することもお薦めします。メッセージ・ウィンドウに、コンパイル・エラーや例外がないか確認します。
サンプル・アプリケーションを実行するには、Oracle Tuxedoサーバーが実行されていなければなりません。次に、口座番号を「Account ID」フィールドに入力します。BANKAPPデータベース内にある口座番号であれば、どの口座番号を使用してもかまいません。次の2つの口座番号は、サンプル・アプリケーションで使用できる口座番号の例です。
Oracle Tuxedoサービス・メタデータ・リポジトリの使用とプロパティ値の設定
カスタム・プロパティ・エディタは以下のプロパティのために用意されています。
•
|
JoltFieldName (Jolt対応AWT beans)
|
•
|
serviceName (JoltServiceBean)
|
プロパティ・リストからアクセスされるプロパティ・エディタには、プロパティを追加または変更するときに使用するダイアログ・ボックスが含まれています。対応するプロパティ値の隣にある「...」ボタンを選択することにより、このダイアログ・ボックスをプロパティ・リストから呼び出すことができます。
JoltBeansの中には、プロパティ・リスト・フィールドへの入力が必要なものもあります。
表5-6に、Beansをリストします。
|
|
|
|
userName、PasswordまたはAppPassword
|
Oracle Tuxedoユーザー名とパスワードを入力します。
|
|
|
トランザクションの処理中にサービスを実行する必要がある場合は trueに設定します。サービスがトランザクションを必要としない場合は、isTransactionalを falseに設定します。
|
|
|
Oracle Tuxedo tpsubscribeコールを参照してください。
|
|
|
同じ名前の複数のフィールド。索引は0から始まります。
|
|
|
|
Beanのプロパティを追加または変更するには、以下の手順に従います。
1.
|
「ServiceName」フィールドの「...」をクリックして、サービス名を選択します( 図5-28を参照)。
|
ServiceNameのカスタム・プロパティ・エディタが表示されます(
図5-29を参照)。
注意:
|
Repositoryデータベースに接続できない、または接続したくない場合は、テキスト・ボックスにサービス名を入力し、ステップ7に進んでください。
|
2.
|
ログオンしていない場合は、Joltサーバーが動作していることを確認し、 「ログオン」を選択します。
|
図5-30に示すような「JoltBeans Repository Logon」が表示されます。
3.
|
Serverフィールドに、Oracle TuxedoまたはJoltリレー・マシンの名前を入力し、Port numberフィールドにJSLまたはJoltリレーを入力します。
|
4.
|
パスワード、およびユーザー名情報(必要な場合)を入力して 「ログオン」をクリックします。
|
5.
|
に示すリスト・ボックス内の該当するサービス名を選択します。
|
6.
|
プロパティ値(サービス名またはフィールド名)を直接入力します。
|
用意されているテキストボックスに入力してください。
7.
|
カスタム・プロパティ・エディタ・ダイアログ・ボックスの 「OK」をクリックします。
|
テキストボックスに入力した内容がBeanのプロパティに設定されます。
8.
|
カスタム・プロパティ・エディタ・ダイアログ・ボックスの 「OK」をクリックします。
|
Oracle Tuxedoアプリケーション・サービスが、データベースを更新する機能を持つ場合があります。この場合は、JoltBeansでトランザクションを使用できます。たとえばBANKAPPでは、TRANSFERとWITHDRAWALのサービスがBANKAPPのデータベースを更新します。アプリケーション・サービスが読取り専用(例: INQUIRY)の場合には、トランザクションを使用する必要はありません。
以下は、JoltBeansでトランザクションを使用する例です。
1.
|
JoltServiceBeanクラスの setTransactional (true)メソッドを呼び出します。 isTransactionalはJoltServiceBeanのブール型のプロパティです。
|
2.
|
JoltSessionBeanクラスの beginTransaction()メソッドを呼び出します。
|
3.
|
JoltServiceBeanクラスの callService()メソッドを呼び出します。
|
4.
|
サービス・コールの結果により、JoltSessionBeanクラスの commitTransaction()メソッドまたは rollbackTransaction()メソッドを呼び出します。
|
JoltService BeanでカスタムGUI要素を使用する
JoltBeansには、Jolt対応の限定されたGUIコンポーネント・セットが用意されています。また、Jolt対応でないコントロールをJoltServiceBeanと一緒に使用することもできます。JoltServiceBeanには、JoltServiceBeanによって表されるサービスの出力情報を表示するコントロールをリンクできます。また、入力情報を表示するコントロールをリンクすることもできます。
たとえば、GUI要素はJoltOutputListenerインタフェースを実装するアダプタ・クラスを使用して、JoltOutputEventをリスニングできます。JoltServiceBeanはJoltOutputEventのイベント・ソースとして、JoltOutputEventを送信するときにアダプタ・クラスの
serviceReturned()メソッドを呼び出します。
serviceReturned()の内部では、イベント・オブジェクトからの情報を使用して、コントロールの内部データが更新されます。
開発ツールは、JoltServiceBeanとGUI要素が関連付けられるとアダプタ・クラスを生成します。
2つ目の例として、GUI要素はJoltServiceBeanの
setInputTextValue()メソッドを呼び出すことができます。GUI要素にはJoltServiceBeanによって表されるOracle Tuxedoサービスへの入力データが含まれています。
3つ目の例として、GUI要素は必要なメソッド(
addJoltInputListener()と
removeJoltInputListener())を実装でき、JoltInputEventのイベント・ソースとしての役割を果たします。JoltServiceBeanは、これらのイベントのイベント・リスナーとしての役割を果たします。コントロールは、状態が変わる場合にJoltInputEventを送信して、入力情報でJoltServiceBeanを更新します。