SAPфорум.RU https://sapboard.ru/forum/ |
|
Импорт WSDL с созданием интерфейса и ошибка генерации proxy https://sapboard.ru/forum/viewtopic.php?f=70&t=89883 |
Страница 1 из 2 |
Автор: | Chaser009 [ Пн, мар 02 2015, 03:37 ] |
Заголовок сообщения: | Re: Импорт WSDL с созданием интерфейса и ошибка генерации proxy |
А Вы разве не для своего интерфейса прокси генерируете? Я просто обычно гружу в ESR описание внешнего сервиса через External Definition, создаю исходящий интерфейс для ERP со своими типами данных, на него генерирую прокси в ABAPе, а PI уже выполняет мэппинг в структуру сообщения, описанную в сервисе, и по SOAP выполняет запрос/ответ. |
Автор: | rabbit [ Пн, мар 02 2015, 11:30 ] |
Заголовок сообщения: | Re: Импорт WSDL с созданием интерфейса и ошибка генерации proxy |
У вас в типе данных есть External Reference. На "<element name="GetMeasurement">" from the namespace "http://www.honeywell.com/abc/" Вам нужно его достать и подгрузить. http://scn.sap.com/thread/1027838 |
Автор: | medi_evil [ Пн, мар 02 2015, 12:46 ] |
Заголовок сообщения: | Re: Импорт WSDL с созданием интерфейса и ошибка генерации proxy |
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 или же у меня нет прав. Скорее всего я ничего не должен увидеть по этой ссылке, или же это не так? |
Автор: | medi_evil [ Пн, мар 02 2015, 18:08 ] |
Заголовок сообщения: | Re: Импорт WSDL с созданием интерфейса и ошибка генерации proxy |
Если я правильно понял 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 я создал тех и бизнес систему. Такую ошибку я встречаю впервые. Гугл ответа не дал. |
Автор: | Chaser009 [ Вт, мар 03 2015, 02:23 ] |
Заголовок сообщения: | Re: Импорт WSDL с созданием интерфейса и ошибка генерации proxy |
Ну может я просто Вас не совсем правильно понимаю. У Вас вариант исходящий ABAP-прокси -> внешний Web-сервис через SOAP? Если так, то я делаю следующее обычно: создаю в ESR типы данных, сообщений, исходящий интерфейс. На этот интерфейс генерируется прокси в ABAPе. Типы данных и сообщений для веб-сервиса импортирую через external definition. Для него же создаю входящий интерфейс и операции с импортированными типами данных. Ну и мэппинги по необходимости. Это, наверное, не самый оптимальный вариант, но рабочий. |
Автор: | medi_evil [ Вт, мар 03 2015, 10:09 ] |
Заголовок сообщения: | Re: Импорт WSDL с созданием интерфейса и ошибка генерации proxy |
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 |
Автор: | rabbit [ Вт, мар 03 2015, 11:44 ] |
Заголовок сообщения: | Re: Импорт WSDL с созданием интерфейса и ошибка генерации proxy |
Цитата: Да, все верно, я так и сделал. Только изначально я одним махом при импорте WSDL создал интерфейс автоматически. Надо сначала Wsdl импортировать, а потом сервис (интерфейс) создавать и указывать этот тип данных (из wsdl). Автоматически сгенерированный сервис (интерфейс) не факт, что подойдет для Abap Proxy. |
Автор: | medi_evil [ Вт, мар 03 2015, 15:18 ] |
Заголовок сообщения: | Re: Импорт WSDL с созданием интерфейса и ошибка генерации proxy |
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 Ну и все равно пришлось сделать полный рестарт системы, после чего ошибка ушла. |
Автор: | Chaser009 [ Вт, мар 03 2015, 15:27 ] |
Заголовок сообщения: | Re: Импорт WSDL с созданием интерфейса и ошибка генерации proxy |
medi_evil написал(а): Что за операции с импортированными данными? Имелось в виду, что для интерфейса создаете те же операции, что описаны в wsdl и указываете для них загруженные внешние типы сообщений. |
Автор: | medi_evil [ Вт, мар 03 2015, 17:32 ] |
Заголовок сообщения: | Re: Импорт WSDL с созданием интерфейса и ошибка генерации proxy |
Друзья, что-то со скрипом идет дело. Казалось бы все решено, но нет. 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). Сделал обновление дельты, не помогло. Для полного обновления требуется какой-то юзер. Подскажите, пожалуйста. |
Автор: | Chaser009 [ Ср, мар 04 2015, 04:09 ] |
Заголовок сообщения: | Re: Импорт WSDL с созданием интерфейса и ошибка генерации proxy |
Ну, по сообщению, у Вас получатель не определяется. Копайте Receiver Determination в ID и проверяйте, все ли с SLD в порядке. |
Автор: | medi_evil [ Ср, мар 04 2015, 12:28 ] |
Заголовок сообщения: | Re: Импорт WSDL с созданием интерфейса и ошибка генерации proxy |
Chaser009 написал: Ну, по сообщению, у Вас получатель не определяется. Копайте Receiver Determination в ID и проверяйте, все ли с SLD в порядке. SLDCHECK в системах показал успешный коннект. Пересоздал тех. и бизнес системы, пересоздал цепочку в сценарии - все равно не видит получателя Если бы 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. |
Автор: | rabbit [ Ср, мар 04 2015, 17:01 ] |
Заголовок сообщения: | Re: Импорт WSDL с созданием интерфейса и ошибка генерации proxy |
А вы уверены, что этот сервис существует? Вы его через SOAP UI тестировали? |
Автор: | Chaser009 [ Чт, мар 05 2015, 03:23 ] |
Заголовок сообщения: | Re: Импорт WSDL с созданием интерфейса и ошибка генерации proxy |
Авторизация на веб-сервисе есть? У Вас на скриншоте в коммуникационном канале она не настроена. |
Страница 1 из 2 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |