Текущее время: Чт, мар 28 2024, 19:01

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 26 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Импорт WSDL с созданием интерфейса и ошибка генерации proxy
СообщениеДобавлено: Пт, фев 27 2015, 17:51 
Ассистент
Ассистент

Зарегистрирован:
Пн, июл 29 2013, 09:41
Сообщения: 46
Добрый день.
Скоро весна, но на работу это никак не влияет :D
Есть проблема связанная с генерацией прокси после импорта WSDL. Я не АВАP `ер, но хочу понять в чем дело. Если есть время, подскажите.
1. Șмпортировал готовый WSDL через Tools > Import Service Interface. После импорта, как Вы знаете, создается external defenition с загруженным типом данных и интерфейс, в котором уже прописан запрос, ответ и message fault.

2. Создал сценарии в ID, работаю с SOAP адаптером. Пытаюсь из ERP достучаться до вебсервиса.

3. Генерирую прокси и получаю ошибку, после которой генерация не происходит:

Cannot generate proxy (object <element name="GetMeasurement"> missing in WSDL, see long text)
Message no. SPRX084

Background
During proxy generation, an interface description in WSDL format is fetched from the Enterprise Services Builder or from another source and interpreted. This WSDL document must describe the whole interface correctly.
==> Display Query
==> Display WSDL Document

Diagnosis
In the WSDL document, the object
"<message name="ToroWebService_GetMeasurement_In..."
from the namespace
"http://www.honeywell.com/abc/"
links to the object
"<element name="GetMeasurement">"
from the namespace
"http://www.honeywell.com/abc/"

However, this last object does not exist in the WSDL document.

System Response
ABAP proxy generation expects that all directly and indirectly referenced objects are in the WSDL document. Therefore, no proxy can be generated for this WSDL and the system displays an error message.

Procedure
This situation can have different causes:

Object "<element name="GetMeasurement">" not been defined
Object "<element name="GetMeasurement">" saved in the wrong namespace
In the reference to object "<element name="GetMeasurement">", the wrong name was specified
In the reference to object "<element name="GetMeasurement">", the wrong namespace "http://www.honeywell.com/abc/" was specified
Internal error in the service that constructs the WSDL document
Internal error in ABAP proxy generation


а вот и отрезок, на который ругается:

<wsdl:message name="ToroWebService_GetMeasurement_InputMessage">
<wsdl:part name="parameters" element="tns:GetMeasurement" />
</wsdl:message>



Пробовал убирать tns:, дописывать руками element name - все это, как и сразу было понятно без результатов.
Почему прокси не понимает <wsdl:part name="parameters" element="tns:GetMeasurement" /> , я в ESR при просмотре вижу этот элемент :

Изображение


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Импорт WSDL с созданием интерфейса и ошибка генерации proxy
СообщениеДобавлено: Пн, мар 02 2015, 03:37 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, авг 29 2011, 08:54
Сообщения: 318
Откуда: Владивосток, Россия
Пол: Мужской
А Вы разве не для своего интерфейса прокси генерируете?
Я просто обычно гружу в ESR описание внешнего сервиса через External Definition, создаю исходящий интерфейс для ERP со своими типами данных, на него генерирую прокси в ABAPе, а PI уже выполняет мэппинг в структуру сообщения, описанную в сервисе, и по SOAP выполняет запрос/ответ.

_________________
У меня два правила:
1. Не говорить всего, что знаю.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Импорт WSDL с созданием интерфейса и ошибка генерации proxy
СообщениеДобавлено: Пн, мар 02 2015, 11:30 
Ассистент
Ассистент

Зарегистрирован:
Пн, окт 20 2014, 10:13
Сообщения: 47
У вас в типе данных есть External Reference.
На "<element name="GetMeasurement">"
from the namespace
"http://www.honeywell.com/abc/"

Вам нужно его достать и подгрузить. http://scn.sap.com/thread/1027838


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Импорт WSDL с созданием интерфейса и ошибка генерации proxy
СообщениеДобавлено: Пн, мар 02 2015, 12:46 
Ассистент
Ассистент

Зарегистрирован:
Пн, июл 29 2013, 09:41
Сообщения: 46
Chaser009 написал:
А Вы разве не для своего интерфейса прокси генерируете?
Я просто обычно гружу в ESR описание внешнего сервиса через External Definition, создаю исходящий интерфейс для ERP со своими типами данных, на него генерирую прокси в ABAPе, а PI уже выполняет мэппинг в структуру сообщения, описанную в сервисе, и по SOAP выполняет запрос/ответ.


Chaser009, я сделал импорт WSDL непосредственно с Import Service Interface. Вы предлагаете сделать импорт непосредственно XSD и прописать его как сообщение-запрос и сообщение-ответ для интерфейса? Я сейчас так сделал и пока прокси генерируется без ошибок. Сейчас надо попробовать что-то отправить. Или я не правильно Вас понял?

rabbit написал(а):
У вас в типе данных есть External Reference.
На "<element name="GetMeasurement">"
from the namespace
"http://www.honeywell.com/abc/"

Вам нужно его достать и подгрузить. http://scn.sap.com/thread/1027838


rabbit, я сверил ссылки в закладке External References и там находится две ссылки. Одна ведет непосредственно на XSD файл, который я загрузил (об этом я писал выше). Вторая ссылка это XML. По ссылке на которую ссылается элемент - я получаю page not found или же у меня нет прав. Скорее всего я ничего не должен увидеть по этой ссылке, или же это не так?


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Импорт WSDL с созданием интерфейса и ошибка генерации proxy
СообщениеДобавлено: Пн, мар 02 2015, 18:08 
Ассистент
Ассистент

Зарегистрирован:
Пн, июл 29 2013, 09:41
Сообщения: 46
Если я правильно понял Chaser009, то генерацию прокси поборол так: нашел в WSDL ссылку конкретно на XSD и импортировал XSD в External Defenition и прописал в интерфейс в сообщение-запрос и сообщение-ответ этот файл.
Прешел в настройки ID, создал RD, ID, RA как и полагается для Configuration Scenario, а вот когда дошел до канала-получателя, адаптером которого я выбрал SOAP (+ прописал Target URL), при сохранении получил эту ошибку:

Unable to check whether communication channel is compatible with selected Adapter Engine since version information for Adapter Engine is missing in the SLD

К слову, в SLD я создал тех и бизнес систему. Такую ошибку я встречаю впервые. Гугл ответа не дал.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Импорт WSDL с созданием интерфейса и ошибка генерации proxy
СообщениеДобавлено: Вт, мар 03 2015, 02:23 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, авг 29 2011, 08:54
Сообщения: 318
Откуда: Владивосток, Россия
Пол: Мужской
Ну может я просто Вас не совсем правильно понимаю. У Вас вариант исходящий ABAP-прокси -> внешний Web-сервис через SOAP? Если так, то я делаю следующее обычно: создаю в ESR типы данных, сообщений, исходящий интерфейс. На этот интерфейс генерируется прокси в ABAPе. Типы данных и сообщений для веб-сервиса импортирую через external definition. Для него же создаю входящий интерфейс и операции с импортированными типами данных. Ну и мэппинги по необходимости.
Это, наверное, не самый оптимальный вариант, но рабочий.

_________________
У меня два правила:
1. Не говорить всего, что знаю.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Импорт WSDL с созданием интерфейса и ошибка генерации proxy
СообщениеДобавлено: Вт, мар 03 2015, 10:09 
Ассистент
Ассистент

Зарегистрирован:
Пн, июл 29 2013, 09:41
Сообщения: 46
Chaser009 написал:
Ну может я просто Вас не совсем правильно понимаю. У Вас вариант исходящий ABAP-прокси -> внешний Web-сервис через SOAP? Если так, то я делаю следующее обычно: создаю в ESR типы данных, сообщений, исходящий интерфейс. На этот интерфейс генерируется прокси в ABAPе. Типы данных и сообщений для веб-сервиса импортирую через external definition. Для него же создаю входящий интерфейс и операции с импортированными типами данных. Ну и мэппинги по необходимости.
Это, наверное, не самый оптимальный вариант, но рабочий.


Да, все верно, я так и сделал. Только изначально я одним махом при импорте WSDL создал интерфейс автоматически. Сделал как Вы предложили - "на горячую" прописал message type для интерфейса в виде external definition. Что за операции с импортированными данными?
И я так и не поборол еще ошибку-предупреждение при сохранении SOAP канала - Unable to check whether communication channel is compatible with selected Adapter Engine since version information for Adapter Engine is missing in the SLD


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Импорт WSDL с созданием интерфейса и ошибка генерации proxy
СообщениеДобавлено: Вт, мар 03 2015, 11:44 
Ассистент
Ассистент

Зарегистрирован:
Пн, окт 20 2014, 10:13
Сообщения: 47
Цитата:
Да, все верно, я так и сделал. Только изначально я одним махом при импорте WSDL создал интерфейс автоматически.


Надо сначала Wsdl импортировать, а потом сервис (интерфейс) создавать и указывать этот тип данных (из wsdl).
Автоматически сгенерированный сервис (интерфейс) не факт, что подойдет для Abap Proxy.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Импорт WSDL с созданием интерфейса и ошибка генерации proxy
СообщениеДобавлено: Вт, мар 03 2015, 15:18 
Ассистент
Ассистент

Зарегистрирован:
Пн, июл 29 2013, 09:41
Сообщения: 46
rabbit написал(а):
Цитата:
Да, все верно, я так и сделал. Только изначально я одним махом при импорте WSDL создал интерфейс автоматически.


Надо сначала Wsdl импортировать, а потом сервис (интерфейс) создавать и указывать этот тип данных (из wsdl).
Автоматически сгенерированный сервис (интерфейс) не факт, что подойдет для Abap Proxy.


И это тоже верно! Для запроса и ответа я проставил XSD, а fault massega остался wsdl. Прокси сгенерировалось, но я не мог выполнить тестирование (закидуть xml и отправить, без абап логики) закрывалась сессия! Оказывается в WSDL файле тип данных для одного поля стоял DEC, пришлось поменять abap attribute на INT

Изображение

По ошибке Unable to check whether communication channel is compatible with selected Adapter Engine since version information for Adapter Engine is missing in the SLD - нужно было посмотреть зарегистрирован ли Adapter Engine в SLD.
В ходе проверки обнаружил, что не хватает ассоциации в CIM Instance для Java и прописал его основываясь на эту ссылку
http://scn.sap.com/community/pi-and-soa-middleware/blog/2013/06/13/triggering-sld-registration-of-pi-components



Изображение

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


Последний раз редактировалось medi_evil Вт, мар 03 2015, 15:28, всего редактировалось 2 раз(а).

Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Импорт WSDL с созданием интерфейса и ошибка генерации proxy
СообщениеДобавлено: Вт, мар 03 2015, 15:27 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, авг 29 2011, 08:54
Сообщения: 318
Откуда: Владивосток, Россия
Пол: Мужской
medi_evil написал(а):
Что за операции с импортированными данными?

Имелось в виду, что для интерфейса создаете те же операции, что описаны в wsdl и указываете для них загруженные внешние типы сообщений.

_________________
У меня два правила:
1. Не говорить всего, что знаю.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Импорт WSDL с созданием интерфейса и ошибка генерации proxy
СообщениеДобавлено: Вт, мар 03 2015, 17:32 
Ассистент
Ассистент

Зарегистрирован:
Пн, июл 29 2013, 09:41
Сообщения: 46
Друзья, что-то со скрипом идет дело. Казалось бы все решено, но нет.

http://abs-hmeddb1:8181/toro вот веб сервис, к которому надо законнектится. Использую SOAP в target url проставляю этот адрес. Сохраняю.
Захожу в sproxy и прописываю простейший xml

- <n0:AssetId xmlns:n0="http://www.honeywell.com/abc/">
<n0:Date />
<n0:IdMeas>ID_T_bear2_TDM</n0:IdMeas>
<n0:MpNum />
<n0:ReadingDevice>DV_Boiler6</n0:ReadingDevice>
<n0:Time />
</n0:AssetId>


При отправке ERP не видит <SAP:Code area="RCVR_DETERMINATION">NO_RECEIVER_CASE_BE</SAP:Code>
В Integration Directory настройка стандартная. Из каналов только 1 канал SOAP_Receiver для веб сервиса. К тому же после перезагрузки или до нее в ERP системе перестал обновляться кэш (SXI_CACHE). Сделал обновление дельты, не помогло. Для полного обновления требуется какой-то юзер. Подскажите, пожалуйста.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Импорт WSDL с созданием интерфейса и ошибка генерации proxy
СообщениеДобавлено: Ср, мар 04 2015, 04:09 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, авг 29 2011, 08:54
Сообщения: 318
Откуда: Владивосток, Россия
Пол: Мужской
Ну, по сообщению, у Вас получатель не определяется. Копайте Receiver Determination в ID и проверяйте, все ли с SLD в порядке.

_________________
У меня два правила:
1. Не говорить всего, что знаю.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Импорт WSDL с созданием интерфейса и ошибка генерации proxy
СообщениеДобавлено: Ср, мар 04 2015, 12:28 
Ассистент
Ассистент

Зарегистрирован:
Пн, июл 29 2013, 09:41
Сообщения: 46
Chaser009 написал:
Ну, по сообщению, у Вас получатель не определяется. Копайте Receiver Determination в ID и проверяйте, все ли с SLD в порядке.


SLDCHECK в системах показал успешный коннект.
Пересоздал тех. и бизнес системы, пересоздал цепочку в сценарии - все равно не видит получателя :cry:

Изображение

Изображение

Если бы target URL был не верным, какую бы ошибку монитор выдавал?

UPD:

Нашел причину...и это ужасно. Все это время я отправлял из 100 манданта сообщение, хотя вся цепочка построена для 120.

Сообщение все равно вывалилось с ошибкой, но уже с другой и более интересной (интерфейс синхронный):

com.sap.engine.interfaces.messaging.api.exception.MessagingException: SOAP: response message contains an error XIAdapter/PARSING/ADAPTER.SOAP_EXCEPTION - soap fault: The message with Action '' cannot be processed at the receiver, due to a ContractFilter mismatch at the EndpointDispatcher. This may be because of either a contract mismatch (mismatched Actions between sender and receiver) or a binding/security mismatch between the sender and the receiver. Check that sender and receiver have the same contract and the same binding (including security requirements, e.g. Message, Transport, None).

UPD2:

Дописал в канал SOAP Action : http://www.honeywell.com/abc/ToroWebSer ... easurement
Имеем:

com.sap.engine.interfaces.messaging.api.exception.MessagingException: SOAP: response message contains an error XIAdapter/PARSING/ADAPTER.SOAP_EXCEPTION - soap fault: The server was unable to process the request due to an internal error. For more information about the error, either turn on IncludeExceptionDetailInFaults (either from ServiceBehaviorAttribute or from the <serviceDebug> configuration behavior) on the server in order to send the exception information back to the client, or turn on tracing as per the Microsoft .NET Framework SDK documentation and inspect the server trace logs.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Импорт WSDL с созданием интерфейса и ошибка генерации proxy
СообщениеДобавлено: Ср, мар 04 2015, 17:01 
Ассистент
Ассистент

Зарегистрирован:
Пн, окт 20 2014, 10:13
Сообщения: 47
А вы уверены, что этот сервис существует?
Вы его через SOAP UI тестировали?


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Импорт WSDL с созданием интерфейса и ошибка генерации proxy
СообщениеДобавлено: Чт, мар 05 2015, 03:23 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, авг 29 2011, 08:54
Сообщения: 318
Откуда: Владивосток, Россия
Пол: Мужской
Авторизация на веб-сервисе есть? У Вас на скриншоте в коммуникационном канале она не настроена.

_________________
У меня два правила:
1. Не говорить всего, что знаю.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 26 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB