![]() |
![]() |
|
|
サービスから結果を受信する
ServletSessionPool.call() メソッドは、Tuxedo サービスの結果を含む ServletResult オブジェクトを返します。サービス呼び出しが失敗すると、例外がスローされます。このような例外を迅速に把握し、適切な処理を行う必要があります。発生する可能性のある例外については、『BEA Jolt』の「BEA Jolt の例外」を参照してください。
次の例では、HTTP サーブレットの ServletSessionPool.call() メソッドを使用して ServletResult オブジェクトを取得します。
ServletResult sResult = ssPool.call("service_name", request);
この例では、ssPool は ServletSessionPool、request は HttpServletRequest になります。
ServletSessionPool.call() メソッドによって Result オブジェクトが返されます。このオブジェクトは、ServletResult オブジェクトとしてキャストする必要があります。ServletResult オブジェクトは、Java 文字列でデータを取得するメソッドを提供します。
呼び出しが成功したら、さまざまな形式の getValue() メソッドを使用して Result または ServletResult オブジェクトから個々のパラメータを取り出すことができます。
Result.getValue() メソッドを使用する
Jolt リポジトリの定義に応じて、Tuxedo サービスのパラメータに対応するキーを指定することにより、ServletResult からデータが取り出されます。適切な getValue() メソッドにキーを指定すると、対応する値のオブジェクトが返されます。
また、Result.getValue() メソッドは、キーのルックアップが失敗すると、デフォルト値のオブジェクトを返します。返されたオブジェクトは、Tuxedo サービスの定義に応じて適切なデータ型にキャストする必要があります。たとえば、次のコードでは、
Integer answer = (Integer) resultSet.getValue("Age", null);
キー "Age" を指定して ServletResult で返された値に整数 answer を設定するか、ServletResult にこのキーが存在しない場合は null を返します。Tuxedo と Java のデータ型の対応については、「Java のデータ型を Tuxedo のデータ型に変換する」の表を参照してください。
キーに関連付けられた値の配列を指定することができます。この場合、getValue() メソッドによって、そのインスタンスにある配列の最初の要素が返されます。次のコードでは、
public Object getValue(String name, int index, Object defVal)
このメソッドのシグニチャを使用して、配列内の特定のインデックス指定要素を参照します。
ServletResult.getStringValue() メソッドを使用する
ServletResult は Result の機能を拡張し、追加のメソッドを提供します。
public String getStringValue(String name,
int index,
String defVal)
public String getStringValue(String name,
String defVal)
これらのメソッドは、Result クラスの getValue() メソッドと同様に動作しますが、該当する値のオブジェクトを Java 文字列型で返します。CARRAY は、「Java のデータ型を Tuxedo のデータ型に変換する」で説明したように、2 桁の 10 進数の文字列に変換されます。
![]() |
![]() |
![]() |
|
Copyright © 2001 BEA Systems, Inc. All rights reserved.
|