0

現在、JDeveloper 11を使用してOSBでwsを開発しています。外部SOAPサービスを呼び出す単純なWebサービスがあります。

私のcomposite.xmlファイル:

ここに画像の説明を入力

  1. BPEL SOAP サービスの操作

  2. リモートSOAPサービスの運用

  3. BPEL コンポーネント

現在の開発戦略についていくつか質問があります。新しい操作を BPEL SOAP に追加するにはどうすればよいですか? ApusBPELProcess.xsd (新しい要求と応答の種類を追加) と ApusBPELProcess.wsdl (新しい操作、メッセージなどを追加) を編集して、新しいメソッド (getCompanyDetails()) を追加しました。これは、新しい操作を追加する正しい方法ですか?

これで、BPEL コンストラクトの "Invoke" コンポーネントを使用して、リモート SOAP サービスのメソッドを 1 つだけ呼び出すことができます。

私の BPEL 設計:

ここに画像の説明を入力

BPEL SOap (1) のメソッドをリモート サービス (2) のメソッドにバインドするにはどうすればよいですか? 例: クライアントがprocessBPEL Soap からメソッドを呼び出す場合 (1)、入力パラメーターの検証を行ってgetServiceCompaniesから、リモート SOAP から呼び出したい (2)。したがって、クライアントが BPEL Soap から別のメソッドを呼び出すとき (1)、リモート SOAP で別のメソッドを呼び出したい (2)。

必要なコンポーネントを含む図を見せていただければ、非常にありがたいです。「Mediator」コンポーネントについて読みましたが、現在の状況でそれらを使用する方法がわかりません。

前もって感謝します。

4

2 に答える 2

2

1 つのオプションは、BPEL サービスによって公開される操作ごとに複数の onMessage ブランチを持つことができる Pick アクティビティを使用できることです。同様に、Invoke アクティビティには、呼び出す必要があるリモート SOAP サービスの操作を選択するオプションがあります。したがって、コンポジットは、BPELoperation1 が選択された OnMessage ブランチを含む Pick アクティビティのようになり、次に検証を実行してから、remoteoperation1 が選択された状態で呼び出すロジックになります。さらに、BPELoperation2 が選択された別の onMEssage ブランチ、検証を実行し、remoteoperation2 が選択された状態で呼び出すロジックのようになります。

于 2016-07-11T12:37:59.160 に答える
0

Mediator コンポーネントで解決策を見つけました。多分それは誰かを助けるでしょう。

公開したサービスとリモート サービスの間に Mediator コンポーネントを追加しました。Mediator コンポーネントは、これら 2 つのサービス間でリクエストのルーティングとデータ変換を行います。公開したサービスの各メソッドについて、BPEL プロセスを Mediator の他のエンドポイントに追加しました (これらの BPEL プロセス内でメソッド固有の検証/その他のロジックを実行します)。

私の最終的なcomposite.xml:

  1. 私の公開サービスの方法
  2. メディエーター
  3. 私が呼ぶリモートサービス

ここに画像の説明を入力

Mediator コンポーネント内で、ルーティングと変換を行います。公開されたサービス (1) のメソッドごとに、Mediator (2) にルーティング ルールがあります。

Mediator コンポーネントの規則:

4a、4b - 公開されたサービスのメソッド 4c - 新しいルーティング ルールを追加するためのボタン 4d - 変換ルールを追加するためのボタン (通常、メソッド - 要求/応答の変換ルールのペアがあります)

ここに画像の説明を入力

変換ファイルは、2 つのエンドポイント間で情報を変換する .xsl ファイルです。

私の .xsl ファイル:

ここに画像の説明を入力

.xsl ファイルの内容:

ここでは、応答データ (各コンポーネント) を反復処理しています。

ここに画像の説明を入力

そして最後に、各 BPEL プロセス内に、リモート サービスで適切なメソッドを呼び出す "Invoke" コンポーネント (5) があります。

ここに画像の説明を入力

それが誰かになることを願っています。幸運を!

于 2016-07-19T06:55:03.870 に答える