1

soa suite 11g ps3 でのイベント処理に bpel 拡張機能を使用しようとしています。イベント配信ネットワークからイベントをサブスクライブしようとしていますが、エラーが発生します。

それがコードです:

<eventHandlers>
  <onEvent bpelx:eventName="ns4:discountEvent" variable="discEvent" >
    <scope name="Scope1">
      <sequence name="Sequence1">
        <exit name="Exit1"/>
      </sequence>
    </scope>
  </onEvent>
</eventHandlers>

コンパイラは私に次のエラーを与えています:

Error(52): Activity <bpel:onEvent> must have "element", "messageType" attribute present.

「onEvent」アクティビティでの拡張機能の使用に関する情報が見つかりません。

どんな助けでも大歓迎です!

ありがとう、クリス

4

1 に答える 1

1

イベント ハンドラーは、他の対話アクティビティとは少し異なります。受信、呼び出しなどは以前に定義された変数で機能しますが、イベント ハンドラーは onEvent の子アクティビティのスコープで表示される独自の変数を定義します。この変数に型を与えるには、messageType または要素のいずれかが変数の宣言された型であると識別される必要があります。これが、要素または messageType が必要な理由です。

関連する BPEL 2.0 仕様の引用を以下に示します。

variable 属性が存在する場合は、パートナーから受信したメッセージを格納するイベント ハンドラーに対してローカルな変数を識別します。[SA00087] messageType 属性は、QName を使用してメッセージ タイプ定義を参照することにより、変数のタイプを指定します。変数の型 (messageType 属性で指定) は、操作属性で参照される操作で定義された入力メッセージの型と同じでなければなりません。必要に応じて、 messageType 属性を省略し、代わりに、受信するメッセージが単一の部分を持ち、その部分が要素タイプで定義されている場合は、要素属性を代用することができます。その要素タイプは、要素属性によって参照される要素タイプと完全に一致する必要があります。variable および messageType/element 属性は、イベント ハンドラーに関連付けられた関連付けられたスコープ内で、その名前と型の変数の暗黙的な宣言を構成します。要素属性が使用されている場合、イベント ハンドラーで宣言された変数への受信メッセージのバインディングは、セクション 10.4 の receive アクティビティで指定されているように発生します。Web サービス操作の提供 – 受信と返信 .

于 2011-10-24T12:57:41.900 に答える