Обработка событий Oracle BPEL с активностью onEvent и бизнес-событием

Я пытаюсь использовать расширение bpel для обработки событий в пакете soa suite 11g ps3. Я пытаюсь подписаться на событие из сети доставки событий, но получаю сообщение об ошибке.

Это код:

<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.

Любая помощь приветствуется!

Спасибо, Крис


person Chris    schedule 22.10.2011    source источник


Ответы (1)


Обработчики событий работают немного иначе, чем другие действия взаимодействия. В то время как получение, вызов и т. д. работают с ранее определенными переменными, обработчик событий определяет свою собственную переменную, которая видна в области дочерней активности onEvent. Чтобы присвоить этой переменной тип, необходимо указать тип сообщения или элемент, чтобы он был объявленным типом переменной. Вот почему необходим элемент или тип сообщения.

Ниже приведена соответствующая цитата из спецификации BPEL 2.0:

Атрибут переменной, если он существует, идентифицирует переменную, локальную для обработчика событий, которая будет содержать сообщение, полученное от партнера. [SA00087] Атрибут messageType указывает тип переменной, ссылаясь на определение типа сообщения, используя его QName. Тип переменной (как указано атрибутом messageType) ДОЛЖЕН быть таким же, как тип входного сообщения, определенного операцией, на которую ссылается атрибут операции. Необязательно атрибут messageType может быть опущен, и вместо него может быть заменен атрибут элемента, если сообщение, которое должно быть получено, состоит из одной части, и эта часть определена с типом элемента. Этот тип элемента ДОЛЖЕН быть точным соответствием типу элемента, на который ссылается атрибут элемента. Атрибуты variable и messageType/element представляют собой неявное объявление переменной с таким именем и типом в связанной области, связанной с обработчиком событий. Если используется атрибут элемента, то привязка входящего сообщения к переменной, объявленной в обработчике событий, происходит, как указано для действия получения в разделе 10.4. Предоставление операций веб-службы — получение и ответ.

person vanto    schedule 24.10.2011