2016-07-11 15 views
0

В настоящее время я разрабатываю ws с OSB с помощью JDeveloper 11. У меня есть простой веб-сервис, который вызывает внешнюю службу SOAP.Многочисленные операции Oracle Service Bus внутри открытой службы SOAP

Мой composite.xml файл:

enter image description here

  1. Операции моей BPEL службы Soap

  2. Операции удаленной службы SOAP

  3. BPEL компонент

У меня мало вопросов относительно текущей стратегии развития. Как добавить новые операции в мой BPEL SOAP? Я добавил новый метод (getCompanyDetails()), отредактировав ApusBPELProcess.xsd (добавленные новые типы запросов и ответов) и ApusBPELProcess.wsdl (добавлена ​​новая операция, сообщение и т. Д.). Это правильный способ добавления новых операций?

Теперь я могу вызвать только один метод удаленной службы SOAP с помощью компонента «Invoke» из конструкций BPEL.

Мой дизайн BPEL:

enter image description here

Как я могу позвонить связать метод из моего BPEL Мыльные (1) к способу из удаленного обслуживания (2)? Например: когда клиент вызывает метод process из моего BPEL Soap (1), я хочу выполнить некоторую проверку на входных параметрах, а затем вызвать getServiceCompanies из удаленного SOAP (2). И поэтому, когда клиент вызывает другой метод из BPEL Soap (1), я хочу вызвать другие методы на удаленном SOAP (2).

Будем очень благодарны, если кто-то может показать мне диаграмму с необходимыми компонентами. Потому что я читал о компонентах «Посредник», но я не знаю, как их использовать в моей текущей ситуации.

Заранее спасибо.

ответ

0

Я нашел решение с компонентом-посредником. Может быть, это поможет кому-то.

Хорошо, я добавил компонент посредника между моим выставленным сервисом и удаленным сервисом. Компонент посредника выполняет запрос маршрутизации и преобразования данных между этими двумя службами. Для каждого метода в моем выставленном сервисе я добавил BPEL-процесс к другой конечной точке посредника (я буду выполнять определенную проверку метода/другую логику внутри этих процессов BPEL).

Мой последний состав.XML:

  1. Методы моей открытой службы
  2. Посредник
  3. дистанционного обслуживания, что я называю

enter image description here

Внутри Посредник компонента я маршрутизацию и преобразование. Для каждого метода моего открытого сервиса (1) у меня есть правило маршрутизации в «Посреднике» (2).

правило компонента

Посредника:

4, 4b - Методы моей открытой службы 4c - кнопка для добавления нового правила маршрутизации 4d - кнопка для добавления правила преобразования (как правило, вы будете иметь пару правил преобразования для А метод - запрос/ответ)

enter image description here

преобразование файлы .xsl файлы, которые делают информацию о Перекодировке между двумя конечными точками.

Мои .xsl файлы:

enter image description here

Содержимое файла .xsl:

Здесь я делаю итерации через данные отклика (для-каждого компонента).

enter image description here

И, наконец, внутри каждого процесса BPEL У меня есть «Вызов» компонент (5), который вызывает соответствующий метод на удаленной службы.

enter image description here

Надеется, что это будет кто-то. Удачи!

2

Один из вариантов: вы можете использовать операцию Pick, которая может иметь несколько ветвей onMessage для каждой операции, предоставляемой вашим сервисом BPEL. Аналогично, для операции Invoke можно выбрать операцию удаленного SOAP-сервиса, который необходимо вызвать. Таким образом, ваш композит будет выглядеть как активность выделения с веткой OnMessage с выбранным BPELoperation1, затем логикой для проверки и последующим вызовом с remoteoperation1 selcted. И выбрана другая ветвь onMEssage с выбранным BPELoperation2, логика для проверки и вызова с удаленным удалением2.

+0

Спасибо за ваш комментарий. Да, я согласен, что это вариант. Но мне нужен вариант медиатора. – 0bj3ct

 Смежные вопросы

  • Нет связанных вопросов^_^