![]() ![]() ![]() ![]() |
注意 : | サービス ブローカ コントロールは、WebLogic Integration の使用許諾を受けた場合にのみ、BEA WorkSpace Studio で使用できます。 |
サービス ブローカ コントロールを使用すると、ビジネス プロセスでは、他のビジネス プロセス、Web サービス、または WSDL ファイルで定義されているビジネス プロセスへ要求を送信したり、コールバックを受信したりできます。
サービス ブローカ コントロールでは、コントロールの属性を動的に設定できます。したがって、アプリケーションを再デプロイせずにコントロール属性を再コンフィグレーションできます。
コントロール インスタンスをビジネス プロセスに追加する方法については、「ビジネス プロセスでコントロールを使用する」を参照してください。
サービス ブローカ コントロールを使用すると、ビジネス プロセスでは、別のビジネス プロセス、Web サービス、またはリモートの Web サービスやビジネス プロセスとの間で、要求を送信したりコールバックを受信したりできます。サービス ブローカ コントロールは Web サービス コントロールの拡張機能です。
リモートの Web サービスまたはビジネス プロセスは、Web サービスを使用してアクセスされ、WSDL (Web Services Description Language) ファイルに記述されます。WSDL ファイルには、Web サービスが実装するメソッドとコールバックを、メソッド名、パラメータ、および戻り値の型を含めて記述します。[パッケージ・エクスプローラー] ペインの Process.java ファイルを右クリックし、[WSDL ファイルの生成] を選択することによって、任意のビジネス プロセスについて WSDL ファイルを生成することができます。
サービス ブローカ コントロールを使用する最初の手順は、コントロール ファイルを作成することです。コントロールは、BEA WorkSpace Studio を使用して、対象のサービス (Web サービス、ビジネス プロセス、または WSDL ファイル) から自動的に生成できます。また、BEA WorkSpace Studio の データ パレットの [コントロール] セクションにある [追加] 機能を使用して作成することもできます。コントロールのメソッドとコールバックは、対象のサービスのオペレーションとコールバックに対応しています。このコントロール ファイルのインスタンスは対象のサービスを呼び出すために親サービスで使用されます。また、対象のサービスからコールバックを取得するためにも使用されます。サービス ブローカ コントロール ファイルでは、対象のサービスがステートフルな場合は、開始メソッドに対してのみセレクタのアノテーションを設定できます。一方、対象のサービスがステートレスな場合は、どのメソッドに対してもセレクタのアノテーションを設定できます。
注意 : | 親プロセスと対象プロセスの両方を、同じプロトコルを使用するようにコンフィグレーションする必要があります。プロトコルの照合と有効化は自動的には処理されません。 |
サービス ブローカ コントロールの作成方法については、「新しいサービス ブローカ コントロールを作成する」を参照してください。サービス ブローカ コントロールのメソッドの詳細については、ServiceBrokerControl インタフェースを参照してください。
ここでは、新しいサービス ブローカ コントロールを作成する方法について説明します。サービス ブローカ コントロールについては、「概要 : サービス ブローカ コントロール」を参照してください。
サービス ブローカ コントロールは、以下の節で説明する 2 とおりの方法で作成できます。
新しいサービス ブローカ コントロールを作成して Web サービスまたはビジネス プロセスに追加するには、[Insert Control: サービス ブローカ] ダイアログを使用します。
注意 : | ビジネス プロセス (Process.java) を参照するサービス ブローカ コントロールを作成する場合、そのビジネス プロセスは現在の BEA WorkSpace Studio アプリケーション内になければなりません。 |
注意 : | デザイン ビューが表示されていない場合は、[デザイン] タブをクリックします。 |
注意 : | [データ パレット] ビューが BEA WorkSpace Studio に表示されない場合は、メニュー バーから [ウィンドウ|ビューの表示|データ パレット] をクリックします。 |
[Insert Control: サービス ブローカ] ダイアログが表示されます。
動的なセレクタ クエリ ビルダを起動した場合は、以下の手順を実行して、クエリを構築してテストします。
TPM
] を選択します。ドメイン全体の DynamicProperties.xml
ファイルで指定した動的プロパティにルックアップ値をバインドするには、[LookupControl] を選択します。ドメインがアクティブでない場合にだけ、DynamicProperties.xml
ファイルを編集してルックアップ値を動的プロパティにバインドしてください。ドメインがアクティブな場合は、WebLogic Integration Administration Console を使用してルックアップ値をバインドすることをお勧めします。
WebLogic Integration Administration Console を使用してルックアップ値を動的プロパティにバインドする方法の詳細については、『WebLogic Integration Administration Console の使用』の「プロセス コンフィグレーション」(下記 URL から入手可能) にある「動的コントロール セレクタの追加または変更」を参照してください。
http://edocs.beasys.co.jp/e-docs/wli/docs102/adminhelp/processconfig.html
サービス ブローカ コントロールが作成され、[パッケージ・エクスプローラー] ペインに表示されます。コントロールのインスタンスも作成され、データ パレットに追加されます。
既存のビジネス プロセスからサービス ブローカ コントロールを作成できます。
[動的なセレクタの生成 (省略可能)] ダイアログが表示されます (図 12-1 を参照)。
動的なセレクタ クエリ ビルダを起動した場合は、以下の手順を実行して、クエリを構築してテストします。
DynamicProperties.xml
ファイルで指定した動的プロパティにルックアップ値をバインドするには、[LookupControl] を選択します。ドメインがアクティブでない場合にだけ、LookupControl を使用してルックアップ値を動的プロパティにバインドしてください。ドメインがアクティブな場合は、WebLogic Integration Administration Console を使用してルックアップ値をバインドすることをお勧めします。
WebLogic Integration Administration Console を使用してルックアップ値を動的プロパティにバインドする方法の詳細については、『WebLogic Integration Administration Console の使用』の「プロセス コンフィグレーション」(下記 URL から入手可能) にある「動的コントロール セレクタの追加または変更」を参照してください。
http://edocs.beasys.co.jp/e-docs/wli/docs102/adminhelp/processconfig.html
MyProcess.java
である場合、生成されるサービス ブローカ コントロール ファイルの名前は MyProcessSBControl.java
になります。注意 : | 代わりに、サービス ブローカ コントロール ファイルを手動で作成することもできます。たとえば、既存のサービス ブローカ コントロール ファイルをコピーしてから変更することができます。 |
XQuery 式および XQuery Builder を使用する場合には、以下の事項に注意することが重要です。
サービス ブローカ コントロールには、コントロールの一部のプロパティを動的にバインドする機能もあります。プロパティの動的バインディングは以下の方法で行うことができます。
現在のプロパティ設定を取得するには、getProperties()
メソッドを使用します。このメソッドは、username
/password
、keyAlias
/keyPassword
、および keyStoreLocation
/keyStorePassword
のようなセキュリティ関連の設定を返さないことに注意してください。
優先順位の最も高いメソッドから開始するプロパティ設定の階層は以下のとおりです。
ServiceBrokerControlProperties
タイプは、DynamicProperties.xsd
で定義された対応するスキーマ要素から生成される XML Beans クラスです。DynamicProperties.xsd
ファイルは、新しいプロセス アプリケーションのシステム フォルダ内、またはスキーマ プロジェクトのシステム フォルダ内にあります。
注意 : | ServiceBrokerControlProperties ドキュメントの password フィールドと関連する setPassword() メソッドでは、実際のパスワードではなく、パスワードのエイリアスを指定してください。 |
setProperties()
メソッドは、この XML Bean クラスを使用してコントロール インスタンスのプロパティを設定します。サービス ブローカ コントロール メソッド上のセレクタは、ServiceBrokerControlProperties
要素に準拠する XML ドキュメントを返します。以下のサンプルでは、コントロールのエンドポイント プロパティをプログラム的に設定する方法を示しています。コントロールの作成時に生成されたコードに太字のコード行を追加し、動的バインディングと静的アノテーションを使用して設定されるプロパティをオーバーライドします。
import com.bea.wli.control.dynamicProperties.
ServiceBrokerControlPropertiesDocument;
import com.bea.wli.control.dynamicProperties.
ServiceBrokerControlPropertiesDocument.ServiceBrokerControlProperties;
ServiceBrokerControlPropertiesDocument props= null;
ServiceBrokerControlProperties sprops = null;
public void sBC8InvokeSetProperties() throws Exception
{
props = ServiceBrokerControlPropertiesDocument.Factory.newInstance();
sprops = props.addNewServiceBrokerControlProperties();
sprops.setEndpoint("http://localhost:7001/BVTAppWeb/ServiceBrokerControl
/SBC8DynPropHierarchyChild_2.jpd");
上記のコードにある ServiceBrokerControlPropertiesDocument インスタンスは、データ トランスフォーメーション メソッドまたは XML Bean API から作成します。データ トランスフォーメーションの詳細については、『XQuery Mapper を使用したデータの変換』を参照してください。
以下のコードは、ServiceBrokerControlPropertiesDocument インスタンスのサンプルです。
this.sbcp = ServiceBrokerControlPropertiesDocument.Factory.newInstance();
this.sbcp.addNewServiceBrokerControlProperties();
this.sbcp.getServiceBrokerControlProperties().setEndpoint("http://localhost:7001/");
一部のコントロール プロパティは、動的に指定したり、コントロール ファイルのアノテーションで静的に指定したりできます。たとえば、サービス ブローカ コントロールでは、コントロール ファイルの先頭にある @com.bea.wli.common.control.Location
アノテーションで対象のサービスの http-url
を指定したり、DynamicProperties.xml
の endpoint 要素を使用して動的に指定したりできます。いずれの場合でも、プロパティに対して動的にバインドされた値が、静的アノテーションよりも優先されます。
ドメインがアクティブな場合は、WebLogic Integration Administration Console を使用して動的にバインドすることをお勧めします。WebLogic Integration Administration Console を使用してルックアップ値を動的プロパティにバインドする方法の詳細については、『WebLogic Integration Administration Console の使用』の「プロセス コンフィグレーション」(下記 URL から入手可能) にある「動的コントロール セレクタの追加または変更」を参照してください。
http://edocs.beasys.co.jp/e-docs/wli/docs102/adminhelp/processconfig.html
動的なプロパティは、コントロールの setProperties
またはセッター メソッドの 1 つ (ServiceBrokerControl.setEndPoint()
など) を呼び出して指定することもできます。この方法で指定したプロパティは、セレクタまたはアノテーションによってバインドされたプロパティよりも優先されます。
セレクタを使用して適用されたプロパティは、以下の条件のいずれかに一致するまで、バインドされたままになります。
ServiceControl.reset()
は、動的に設定されたすべてのプロパティ (およびすべての対話状態) をリセットするために、サービス ブローカ コントロールによって上書きされます。プログラム的に指定されたプロパティは、reset()
が呼び出されるまでバインドされたままになります。
コントロールを使用する開発者によって設定されたプロパティ値は、JWS、JSP、または Process.Java ファイルでコントロールの宣言のアノテーションとして、またはコントロール ファイルでインタフェース宣言、コールバック宣言、またはメソッド宣言のアノテーションとして格納されます。
この節では、ビジネス プロセスのサービス ブローカ コントロールを設計するときに考慮する必要のある問題について説明します。この節では、次のトピックについて説明します。
ビジネス プロセスに含まれているトランザクションの数によって、プロセスがステートレスかステートフルかが決まります。詳細については、「ステートレス/ステートフル ビジネス プロセスの構築」を参照してください。この節では、ステートレスおよびステートフルのビジネス プロセスのサービス ブローカ コントロールを設計するときに考慮する必要のある問題について説明します。
サービス ブローカ コントロールを設計するときには、以下のルールに従います。
ビジネス プロセスには、同期要求メソッドと非同期要求メソッドの両方を設定できます。詳細については、「同期/非同期のビジネス プロセスの構築」を参照してください。この節では、同期および非同期のビジネス プロセスのサービス ブローカ コントロールを設計するときに考慮する必要のある問題について説明します。
サービス ブローカ コントロールを設計するときには、以下の事項を考慮します。
通常、サービス ブローカ コントロールは親ビジネス プロセスからサブプロセスを呼び出す際に使用します。サブプロセスが同じドメインにある場合は、親プロセスからサービス ブローカ コントロールを呼び出すと、コントロールが通常どおり呼び出されます。
親プロセスとサブプロセスが別々のドメインにあるか、同じドメインでも別々のアプリケーションにあって、サービス ブローカ コントロールを使用して親プロセスにサブプロセスとやり取りさせる場合は、サービス ブローカ コントロールをサブプロセスのドメインまたはアプリケーションに作成し、そのコントロールを親プロセスのドメインまたはアプリケーションに手動でコピーしてから、既存のコントロール ファイルとして参照する必要があります。
さらに、親プロセスとサブプロセスが別々のアプリケーションにある場合には、location 属性の JMS と HTTP のいずれかまたは両方の場所を手動で変更する必要があります。
サービス ブローカ コントロールを作成すると [パッケージ・エクスプローラー] ペインに表示され、コントロールのインスタンスが [データ パレット] に追加されます。[JPD コンフィグレーション] ペインにサービス ブローカ コントロールの場所が表示されます。
注意 : | [JPD コンフィグレーション] ペインが BEA WorkSpace Studio に表示されない場合は、[ウィンドウ|ビューの表示|JPD コンフィグレーション] をクリックします。 |
サービス ブローカ コントロールがデザイン ビューに表示され、[JPD コンフィグレーション] ペインにはサービス ブローカ コントロールのプロパティが表示されます。(図 12-3 を参照)。
[JPD コンフィグレーション] ペインの [location] セクションに、サービス ブローカ コントロールの場所が表示されます。[location] には、HTTP 属性と JMS 属性のいずれかまたは両方を指定できます。HTTP の場所には実際の HTTP アドレス、JMS の場所には JMS の url を指定します。
この節では、ビジネス プロセスでサービス ブローカ コントロールを呼び出すときに考慮する必要のある実行時の問題について説明します。
ビジネス プロセスに含まれているトランザクションの数によって、プロセスがステートレスかステートフルかが決まります。詳細については、「ステートレス/ステートフル ビジネス プロセスの構築」を参照してください。この節では、ステートレスおよびステートフルのビジネス プロセスでサービス ブローカ コントロールを使用する際に考慮する必要のある実行時の問題について説明します。
以下のルールは、ステートレスおよびステートフルのビジネス プロセスにおける、サービス ブローカ コントロールの実行時の処理を規定するものです。
FORM-POST
および FORM-GET
要求をサービス ブローカ コントロールで作成できます。
ビジネス プロセスには、同期要求メソッドと非同期要求メソッドの両方を設定できます。詳細については、「同期/非同期のビジネス プロセスの構築」を参照してください。この節では、同期および非同期のビジネス プロセスでサービス ブローカ コントロールを使用する際に考慮する必要のある実行時の問題について説明します。
以下のルールは、同期および非同期のビジネス プロセスにおける、サービス ブローカ コントロールの実行時の処理を規定するものです。
com.bea.control.ServiceControlException
が生成される。com.bea.control JwsContext
インタフェースを使用して、Web サービス (JWS ファイル) をサポートするコンテナ サービスにアクセスできる。詳細については、com.bea.control パッケージにある com.bea.control JwsContext インタフェースの説明を参照してください。com.bea.control JwsContext
インタフェースの setUnderstoodInputHeaders()
メソッドは、非同期プロセスではサポートされていません。
サービス ブローカ コントロールは、JMS と WSDL に関連する標準のセキュリティ チェックにすべて準拠しています。SSI はサポートされません。セキュリティの詳細については、「セキュリティ」を参照してください。
サービス ブローカ コントロールにセキュリティの設定をコンフィグレーションする場合には、プロセス上に設定するのではなく WebLogic Integration Administration Console を使用して設定をコンフィグレーションすることをお勧めします。詳細については、http://edocs.beasys.co.jp/e-docs/wli/docs102/adminhelp/processconfig.html
にある『WebLogic Integration Administration Console の使用』の「プロセス コンフィグレーション」の「セキュリティ ポリシーの更新」を参照してください。
通常、サービス ブローカ コントロールは、親プロセスとサブプロセスが同じアプリケーションにある場合、または親プロセスとサブプロセスが別々のアプリケーションにある場合に使用されます。
いずれの場合でも、サービス ブローカ コントロールがトランザクションのサブプロセス側で変更された場合は、親プロセス側でコントロールを再生成して、コントロールが正常に動作するようにする必要があります。サブプロセスと親プロセスが別々のアプリケーションにある場合、サービス ブローカ コントロールが何らかの方法 (要求/応答の削除など) で変更されると、下位互換性が失われる可能性があります。この状況が発生した場合は、サブプロセス側でサービス ブローカ コントロールを結合して、コントロールを親ビジネス プロセスに伝播し直す必要があります。
注意 : | サービス コントロールと同様に、サービス ブローカ コントロールは SOAP エラーが発生した場合に ServiceControlException クラスを送出できます。この SOAP エラーにアクセスするには、JPD の JpdContext.ExceptionInfo インタフェースを使用して、その原因が ServiceControlException かどうかを確認します。ServiceControlException クラスの詳細については、com.bea.control パッケージにある ServiceControlException クラスの説明を参照してください。JpdContext.ExceptionInfo インタフェースの詳細については、 com.bea.jpd Package にある JpdContext.ExceptionInfo インタフェースの説明を参照してください。 |
多くの場合、コントロール属性はアノテーションを使用して静的に定義されます。一部のコントロールは、特定の属性を動的に変更する Java API を備えています。サービス ブローカ コントロールやプロセス コントロールなどの動的コントロールは、コントロール属性を動的に設定する機能を備えています。属性は、ルックアップ ルールとルックアップ値の組み合わせを使用して、実行時に決定されます。このプロセスを「動的バインディング」と呼びます。動的バインディングをサポートするコントロールを「動的コントロール」と呼びます。ビジネス プロセスの開発者は BEA WorkSpace Studio を使用してルックアップ ルールを指定し、管理者は WebLogic Integration Administration Console を使用してルックアップ値を指定します。この機能によって、コントロール属性をアプリケーションから完全に分離し、再デプロイすることなしに、実行中のアプリケーション用に再コンフィグレーションすることができます。
以下のシナリオでは、サービス ブローカ コントロールによる動的バインディングの使われ方を示します。POService.java
は、特定の商品に関する見積もりを取得するために、外部サービスを呼び出す必要があります。複数のベンダがこのサービスを提供しています。管理者は、POService.jpd
を変更したり再デプロイしたりせずに、外部サービスの複数の実装にアクセスできなければなりません。
このトピックでは、サービス ブローカ コントロールを使用して、見積もりサービスへの動的バインディングを提供する機能について説明します。
メソッドレベルのアノテーション com.bea.wli.common.control.Selector を使用すると、コントロールの特定のプロパティを動的に定義できます。次の例に示すように、セレクタには xquery
という属性が 1 つあります。この属性は XQuery 式です。
/**
* com.bea.wli.common.Conversation.Phase.Start
* com.bea.wli.common.control.Selector xquery ::
* lookupControlProperties($request/vendorID) ::
*/
public void requestQuote(PurchaseRequest request);
セレクタの XQuery 式の値は、コントロール プロパティの値を含む XML ドキュメントとスキーマです。TPM リポジトリにアクセスしている場合、XQuery 式は以下のように表示されます。
/**
* @com.bea.wli.common.Conversion(value = com.bea.wli.common.Conversation.Phase.START)
* @com.bea.wli.common.control.Selector( xquery= "lookupControlProperties($request/vendorID)")
* public void requestQuote(PurchaseRequest request);
コントロールのメソッドを呼び出すと、システムはセレクタ アノテーションを検索します。セレクタ アノテーションがある場合、XQuery 式が評価されて、Java の呼び出しの引数が XQuery 式の引数にバインドされます。XQuery 式の結果は、コントロールの動的プロパティを定義する String 値です。
セレクタ式を記述するために、2 つのタイプの XQuery 関数 lookupControlProperties
および lookupTPMProperties
が提供されています。lookupControlProperties
関数は、ドメイン全体の DynamicProperties.xml
ファイルで指定された動的プロパティの値をルックアップします。lookupTPMProperties
関数は、TPM (トレーディング パートナ管理) リポジトリ内のプロパティの値をルックアップします。
TPM リポジトリについては、『Trading Partner Integration の紹介』(http://edocs.beasys.co.jp/e-docs/wli/docs102/tpintro/index.html
) を参照してください。TPM リポジトリへの情報の追加または TPM リポジトリ内の情報の更新については、『WebLogic Integration Administration Console の使用』の「トレーディング パートナ管理」(http://edocs.beasys.co.jp/e-docs/wli/docs102/adminhelp/tpm.html
) を参照してください。TPM コントロールは、WebLogic Workshop ビジネス プロセスと Web サービスに、トレーディング パートナへのクエリ (読み取り専用) アクセス、および TPM リポジトリに格納されたサービス情報を提供します。TPM コントロールについては、「TPM コントロール」を参照してください。
セレクタ式で lookupControlProperties
関数を使用する場合、DynamicProperties.xml
ファイルへのルックアップ キーとして、コントロールの完全修飾クラス名とセレクタの評価結果が使用されます。一致が見つかると、対象のサービスを呼び出す前に動的プロパティが適用されます。
DynamicProperties.xml
は WebLogic Integration Administration Console から管理される XML ファイルです。メッセージ ペイロード (ルックアップ キー) の値と対応するコントロール プロパティの値のマッピングが含まれています。ドメイン内のすべての WebLogic Integration アプリケーションで共有されるドメイン全体のファイルです。このファイルを使用すると、アプリケーションを再デプロイせずに動的プロパティを管理できます。このファイルは、ドメインのルートのサブディレクトリ (wliconfig
) に格納されています。動的なセレクタの管理については、http://edocs.beasys.co.jp/e-docs/wli/docs102/adminhelp/processconfig.html
にある『WebLogic Integration Administration Console の使用』の「プロセス コンフィグレーション」を参照してください。
DynamicProperties.xml
には、動的なコントロールの各コントロール ファイルに対して <control>
要素のシーケンスが 1 つずつ含まれています。各 <control>
要素には name
属性があり、その値はコントロール ファイルの完全修飾 Java クラス名です。<control>
要素には、<key>
要素のシーケンスがネストされています。この要素では、呼び出し側のセレクタ内の lookupControlProperties
に渡されたパラメータの値と一致する文字列値を動的なプロパティにマップします。以下に例を示します。
<DynamicProperties
xmlns="http://www.bea.com/wli/control/dynamicProperties">
<control name context-path="/sbcAppWeb"
controlType="ServiceBrokerControl">
<key value="QuoteCom">
<ServiceBrokerControlProperties>
<endpoint>http://www.quotecom.com/quotes/QuoteService</endpoint>
</ServiceBrokerControlProperties>
</key>
<key value="WebQuote">
<ServiceBrokerControlProperties>
<endpoint>http://www.webquote.com/quoteEngine/getQuote</endpoint>
</ServiceBrokerControlProperties>
</key>
</control context-path>
<control name context-path="quote.InternalQuote"
controlType="ProcessControl">
<key value="OurQuote">
<ProcessControlProperties>
<targetURI>http://acme/myApp/PublicProcess.jpd</targetURI>
</ProcessControlProperties>
</key>
</control context-path>
</DynamicProperties>
WebLogic Integration Administration Console を使用すると、管理者は DynamicProperties.xml
ファイルのエントリを表示したり編集したりできます。
この節では、動的なコントロールとセレクタが、見積もり処理のシナリオの実装にどのように役立つかを示します。図 12-4 は、動的バインディングに参加するコンポーネントを示しています。
対象のサービスへ必要な動的バインディングを行うために、POService.java
で定義されたビジネス プロセスは、サービス ブローカ コントロール (QuoteProcessor.java
) を使用して見積もりサービスを呼び出します。対象は動的に指定されるため、com.bea.wli.common.control.Location
タグは使用されません。サービス ブローカ コントロールは以下のコントロール ファイルで定義されます。
import com.bea.control.ServiceBrokerControl;
import com.bea.control.ControlExtension;
import org.applications.PurchaseRequest;
import org.applications.PurchaseReply;
public interface QuoteProcessor
extends ServiceBrokerControl, ControlExtension
{
public interface Callback
{
public void infoReady (PurchaseReply reply);
}
/**
* @com.bea.wli.common.Conversion(value = com.bea.wli.common.Conversation.Phase.START)"
* @com.bea.wli.common.control.Selector( xquery= "lookupControlProperties($request/vendorID)")
public void requestQuote(PurchaseRequest request
}
実行時に、コントロール コンテナは、コントロールで表されるプロキシを適切な実装にバインドする必要があります。これは、サービス ブローカ コントロール インタフェースの開始メソッドにタグで指定されたセレクタ XQuery 式 (com.bea.wli.common.control.Selector
) によって駆動されます。
注意 : | ステートレス コンポーネントを表すコントロールの場合は、メソッドごとにセレクタを指定できます。セレクタが指定されていないメソッドについては、アノテーションで定義されたデフォルトの場所が使用されます。セレクタの適用後に対象の場所が解決されない場合は、実行時例外が生成されます。 |
セレクタはコントロールの動的プロパティを含む XML フラグメントを返します。以下に例を示します。
<ServiceBrokerControlProperties>
<endpoint>
http://www.quotecom.com/quotes/QuoteService/endpointURI>
</endpoint>
<username>fred</username>
<password>@$%&*</password>
</ServiceBrokerControlProperties>
この例では、セレクタは lookupControlProperties()
という標準の XQuery 関数を使用しています。この関数は、渡されたキーに基づいて、DynamicProperties.xml
ファイルからコントロール プロパティをルックアップします。この例では、キーはペイロードから抽出されたベンダ ID です。lookupControlProperties()
によって返された結果が <ServiceBrokerControlProperties>
要素です。
lookupControlProperties()
によって使用されるキーと属性のマッピング情報は、DynamicProperties.xml
ファイルに格納されています。動的プロパティ ファイルのスキーマは、動的コントロールで有効なすべての属性を扱うことができます。セレクタは、コントロールの作成時に定義することも、コントロール ソース コードを直接編集して定義することもできます。
管理者は WebLogic Integration Administration Console を使用して、セレクタの値と実装の間のマッピングを定義できます。WebLogic Integration Administration Console を使用すると、管理者は以下のプロパティを指定できます。
この節では、以下のアノテーションに関するサービス ブローカ コントロールの特別な動作について説明します。
@com.bea.wli.common.ParameterXml
アノテーションは、指定されたメソッドまたはコールバックについて、コンポーネントの実装コードとメッセージ転送ワイヤの間にキューが必要であることを指定します。詳細については、Java コントロール アノテーションの @com.bea.wli.common.ParameterXml アノテーションを参照してください。
@common:message-buffer
アノテーションは、コンポーネントの実装コードと指定のメソッドまたはコールバックのメッセージ転送通信との間にキューがあることを指定します。@common:message-buffer
アノテーションは、[JPD コンフィグレーション] ペインの [message-buffer] セクションに表示されます。
com.bea.wli.common.Conversation
アノテーションは、コントロールのメソッドまたはコールバックが会話で担うロールを指定します。詳細については、Java コントロール アノテーションの com.bea.wli.common.Conversation annotation
アノテーションを参照してください。
サービス ブローカ コントロールを生成するときは、com.bea.wli.common.Conversation
アノテーションの phase 属性を編集しないでください。com.bea.wli.common.Conversation
アノテーションは、[JPD コンフィグレーション] ペインの [conversation] セクションに表示されます。
@jc:parameter-xml
アノテーションは、XML メッセージと Web サービス処理のパラメータに指定されたデータ間でデータをマーシャリングするための特性を指定します。詳細については、Java コントロール アノテーションの @jc:parameter-xml アノテーションを参照してください。
サービス ブローカ コントロールを設計するときはこのアノテーションを使用しないことをお勧めします。
@com.bea.wli.common.Protocol
アノテーションは、Web サービス コントロールによって表される Web サービス、またはその Web サービスの処理で受け付けることができるプロトコルおよびメッセージ フォーマットを指定します。詳細については、Java コントロール アノテーションの @com.bea.wli.common.Protocol アノテーションを参照してください。
サービス ブローカ コントロールを使用してプロパティを呼び出す場合、com.bea.control.ServiceControl.JmsSoapProtocol
の http-xml
属性は使用しないでください。この属性をサービス ブローカ コントロールで使用することはできません。この属性は、[JPD コンフィグレーション] ペインの [protocol] セクションに表示されます。
![]() ![]() ![]() |