2013-03-06 2 views
0

У меня есть бэкэнд-сервис, который я настраиваю как прокси-сервис в WSO2 ESB.WSO2 ESB изменяет wsdl

ESB предоставляет немного другой wsdl, который также действителен и работает так, как ожидалось.

Проблема в том, что я не могу использовать свои старые заглушки с ESB wsdl из-за измененной структуры. Я хочу создать службу таким образом, чтобы wsdl из ESB был ТОЧНО таким же, как и моя служба конечных точек.

Является ли такой подход допустимым или мне нужно сгенерировать снова заглушки (для этого потребовалось бы много усилий в моем случае)?

EDIT: Разница в WSDL между конечной точкой и ESB 1. WSDL Например моя конечная точка имеет следующие теги

<xs:element name=", - Endpoint 
<xsd:element name= - ESB 

2. Другим отличием является:

<wsdl:service name="CasesServiceService"> - Endpoint 
<wsdl:service name="CasesService"> - ESB 

3. Названия портов :

<wsdl:port name="CasesServiceHttpSoap11Endpoint" binding="tns:CasesServiceSoap11Binding"> 
<wsdl:port binding="tns:CasesServiceServiceSoapBinding" name="CasesServicePort"> 
+1

Штыри используются с конца клиента. Dint четко понимаете, что вы подразумеваете под «Я хочу создать сервис таким образом, что wsdl из ESB ТОЧНО так же, как и моя служба конечных точек». Если ваш wsdl изменен, вам необходимо восстановить заглушки. – Ratha

+0

Спасибо за ответ! Наверное, я не объяснил это хорошо, см. Отредактированный оригинальный пост, пожалуйста. Проблема в том, что я не хочу снова создавать заглушки (потому что это будет очень много времени), я хочу просто изменить URL конечной точки в заглушках, чтобы они продолжали функционировать. – Ivo

+0

Я не думаю, что вы можете использовать одинаковые заглушки для вызова прокси-сервера. Какова цель добавления wsdl в прокси-сервер? Noramlly, если мы не хотим раскрывать некоторые операции бэкэнд-сервиса, мы отредактируем wsdl и закроем wsdl для прокси с единственными разрешенными версиями. В вашем случае я не думаю, что есть веская причина, чтобы привязать wsdl к вашему прокси, а не простое имя cahnge. :) Просто удалите его. – Ratha

ответ

3

Для того, чтобы WSO2 ESB сохранял один и тот же контракт WSDL с теми же самыми именами сервисов/портов, вы можете редактировать файл конфигурации Apache Synapse для своей прокси-службы напрямую. Просто нажмите на кнопку «Source View» в интерфейсе WSO2 ESB и добавьте следующие параметры в <proxy> узле:

<parameter name="useOriginalwsdl">true</parameter> 
<parameter name="modifyUserWSDLPortAddress">true</parameter> 

Это позволит использовать оригинальный WSDL и изменить только адрес порта, так что указывает на автобусе.

relevant documentation is here.

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