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


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


26 февраля 2012 г.

Вызов WEB-сервисов Siebel из Oracle Weblogic сервера

Допустим нам требуется вызвать WEB-сервис Siebel CRM. Для вызова будем использовать модуль Enterprise Service Bus входящий в состав Weblogic сервера.
Шаг 1. Заходим в Siebel и генерируем WSDL файл. Нужно посмотреть используется ли система безопасности в Siebel. Возможные варианты: 1) без пароля 2) простой текст. В первом случае проблем никаких не будет, создаем бизнес сервис и подключаем его в проект.

Во 2-м случае придется столкнуться с тем что в Siebel есть старый баг, который Oracle не собирается исправлять. Siebel отклоняет SOAP запросы, которые используют новые стандарты SOAP. Об этом далее:

Настройка security в oracle weblogic server



При установке weblogic сервера версии 10.3.5 по умолчанию не ставится надстройка Oracle WSM Policy manager. Конечно, если у Вас есть желание несколько раз переустановить рабочий домен weblogic сервера в поисках причин неработоспособности security в модулях OSB и SOA, то Вы можете не включать эту надстройку. В остальных случаях категорически советую включить этот модуль.

Даже если вы установите это дополнение, то после запуска процессов домена при попытке использовать авторизацию в Oracle Service Bus вы получите чудное сообщение:
default-keystore.jks OSB Security Failed to initialize the OWSM Credentials Manager.
Не пытайтесь понять почему это не работает, причина в том, что один файл не появляется после установки сервера.
Чтобы исправить, нужно создать файл с помощью утилиты keytool (нужна версия из каталога bin java):

cd /siebel/java/jdk1.6.0_30/bin
./keytool -genkeypair -keyalg RSA -alias orakey -keypass xxx -keystore default-keystore.jks -storepass xxx -validity 3600
What is your first and last name?
[Unknown]: weblogic
What is the name of your organizational unit?
[Unknown]: MTS
What is the name of your organization?
[Unknown]: MTS
What is the name of your City or Locality?
[Unknown]: Moscow
What is the name of your State or Province?
[Unknown]: RU

What is the two-letter country code for this unit?
[Unknown]: RU
Is CN=weblogic, OU=MTS, O=MTS, L=Moscow, ST=RU, C=RU correct?
[no]: yes

ls *.jks
default-keystore.jks
$ cp default-keystore.jks /siebel/Middleware/user_projects/domains/as2_domain/config/fmwconfig


После этого в EM weblogic сервера установите корректные параметры в меню Sequrity -> Sequrity provider configuration -> Keystore -> Configure

Полезные ссылки:
Oracle Support DocID 1266231.1
http://niallcblogs.blogspot.com/2010/07/osb-11g-and-wsm.html