28 февраля 2012 г.

Вызов WEB-сервисов Siebel из Oracle Weblogic сервера. Часть 2.


Что бы вызвать WEB-сервис созданный в Siebel из сторонней программы, заголовок SOAP запроса должен содержать текст:
Что бы сформировать такой заголовок на Weblogic сервере существует официальный вариант, описанный в документации:
1) импортируем WSDL
2) редактируем WSDL, добавляем так называемое policy:
- в раздел definitions:
<< div="">
< div="">
< div="">

- и в раздел binding:


3) затем на этот wsdl создается объект proxy и на закладке policy заполняются необходимые данные.

К сожалению weblogic формирует немного другой заголовок, чем требуется для Siebel. Поэтому Siebel возвращает ошибку. Эта проблема описана в блоге:
http://jvzoggel.wordpress.com/2010/04/01/oracle-service-bus-and-siebel-usernametoken/
(частичный русский перевод: http://andrei-lobanov.blogspot.com/2010/06/oracle-service-bus-and-siebel-ws.html)

Для решения этой проблемы предлагается метод ручного заполнения заголовка, как и описано в блоге jvzoggel. Недостаток этого решения в хранении пароля в открытом виде в исходных текстах конфигурации. Далее описание данного способа решения:

1) WSDL файл не изменяем;

2) В Eclipse открываем конфигурацию и создаем новый каталог, например sequrity:

3) В этот каталог добавляем объект Service Account. Тип ресурса указываем=static. Указываем требуемый пароль:

учтите, что пароль для показа скрывается, но в исходном XML файле присутствует в открытом виде;

4) Создаем на импортированный WSDL объекты типа business и proxy. Открываем proxy, переходим на закладку Message Flow и добавляем два объекта: Assign и Replace


Продолжение следует.


Комментариев нет:

Отправить комментарий