2

BPEL プロセスで Validate アクティビティを使用して、次のような入力メッセージと出力メッセージを検証します。

<validate name="validateInput" variables="inputVariable"/>

正常に動作しますが、検証エラーが発生すると、コンシューマーは次の種類のエラーのみを取得します。

<env:Fault xmlns:ns0="http://docs.oasis-open.org/wsbpel/2.0/process/executable">
   <faultcode>ns0:invalidVariables</faultcode>
   <faultstring>faultName: {{http://docs.oasis-open.org/wsbpel/2.0/process/executable}invalidVariables}
messageType: {{http://schemas.oracle.com/bpel/extension}RuntimeFaultMessage}</faultstring>
   <faultactor/>
   <detail>
      <exception/>
   </detail>
</env:Fault>

したがって、私の消費者は無効なメッセージを送信したことを知っていますが、正確に何が間違っていたのかについての情報はまったく得られません。

Enterprise Manager で、メッセージが検証に失敗した理由を含む検証エラー メッセージを確認できます。

無効なデータ: 変数 "inputVariable"、パーツ "payload" の値が、このパーツのスキーマ定義と一致しません。要素 'ptSrcIdx' は予期されていません。

この検証エラー メッセージを消費者に返して、消費者がメッセージの何が問題だったのかを確認できるようにする必要があります。

どんな助けにも感謝します。ありがとう!

4

1 に答える 1

0

Oracle にはこの問題に対するパッチがあるようですが、11.1.1.7 でも問題ないはずです。

それまでの間、Java で記述され、Embed Java BPEL アクティビティから呼び出される独自のバリデーターを使用します。少し遅くなりますが (cca +20%)、正常に動作します。

于 2014-01-27T11:26:33.867 に答える