Подключение к веб-сервису SAP

1. user1046602 23.06.23 10:12 Сейчас в теме
Прислали ссылку на веб сервис и отдельно файл wsdl.

true Integrated Configuration | BC_1C_NEFZ | si_DataLoad_outb_sync | |
https://piservice.severstal.com:7000/XISOAPAdapter/MessageServlet?senderParty=&senderService=BC_1C_NEFZ&receiverParty=&receive­rService=&interface=si_DataLoad_outb_sync&interfaceNamespace­=http://severstal.com/pi/O2C/1C


true Integrated Configuration | BC_1C_NEFZ | si_DataSave_outb | |
https://piservice.severstal.com:7000/XISOAPAdapter/MessageServlet?senderParty=&senderService=BC_1C_NEFZ&receiverParty=&receive­rService=&interface=si_DataSave_outb&interfaceNamespace=http­://severstal.com/pi/O2C/1C

В браузере поссылке открывается окно с текстом:
Message Servlet is in Status OK
Status information:
Servlet com.sap.aii.adapter.soap.web.MessageServlet (Version $Id: //tc/xpi.adapters/NW750EXT_22_REL/src/_soap_application_web_module/we­bm/api/com/sap/aii/adapter/soap/web/MessageServlet.java#6 $) bound to /MessageServlet
Classname ModuleProcessor: null
Lookupname for localModuleProcessorLookupName: localejbs/ModuleProcessorBean
Lookupname for remoteModuleProcessorLookupName: null
ModuleProcessorClass not instantiated
ModuleProcessorLocal is Instance of com.sun.proxy.$Proxy472
ModuleProcessorRemote not instantiated

Файл загрузили в WSСсылки. Пытаюсь подключиться к веб-сервису и получаю ошибку:

Ошибка при вызове конструктора (WSПрокси)
{ВнешняяОбработка.ПроверкаВэбСервисаОтветхранение.Форма.Форма.Форма(99)}: Прокси = Новый WSПрокси(Определение, "https://piservice.severstal.com:7000/XISOAPAdapter/MessageServlet?senderParty=&senderService=BC_1C_NEFZ&receiverParty=&receive­rService=&interface=si_DataLoad_outb_sync&interfaceNamespace­=http://severstal.com/pi/O2C/1C", "si_DataLoad_outb_syncBinding", "si_DataLoad_outb_syncBindingSoap");
по причине:
Сервис не найден. {https://piservice.severstal.com:7000/XISOAPAdapter/MessageServlet?senderParty=&senderService=BC_1C_NEFZ&receiverParty=&receive­rService=&interface=si_DataLoad_outb_sync&interfaceNamespace­=http://severstal.com/pi/O2C/1C}:si_DataLoad_outb_syncBinding

ssl1 = Новый ЗащищенноеСоединениеOpenSSL(Новый СертификатКлиентаWindows(СпособВыбораСертификатаWindows.Авто),	Новый СертификатыУдостоверяющихЦентровWindows());
	
		
	Определение = Новый WSОпределения("C:/Users/savina.ikt/Documents/BC_SYS_CLNT_si_DataLoad_outb_syncService_1.wsdl", Пользователь, Пароль,,,ssl1); 
	
	
	Прокси = Новый WSПрокси(Определение, "https://piservice.severstal.com:7000/XISOAPAdapter/MessageServlet?senderParty=&senderService=BC_1C_NEFZ&receiverParty=&receive­rService=&interface=si_DataLoad_outb_sync&interfaceNamespace­=http://severstal.com/pi/O2C/1C", "si_DataLoad_outb_syncBinding", "si_DataLoad_outb_syncBindingSoap");
	Прокси.Пользователь = Пользователь;
	Прокси.Пароль = Пароль;
Показать


Что не так?
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
3. user1880116 25.06.23 21:21 Сейчас в теме
(1)
Файл загрузили в WSСсылки.
Нахрен ты уже вторую тему за эти WSСсылки цепляешся-то?

Там же механика простая как три копейки. Есть файл wsdl определения. Откуда он берется - вообще безразлично, с диска, с сети, скачивается по урлу с параметрами. Внутри этого файла уже есть описание сервисов - их имена, пространство имен, и точки подключения - те самый адреса,по которым надо дергать сервер для вызова метода сервиса.

Создаешь Новый WSОпределения по файлу, ставишь точку останова и в живую наблюдаешь значения этих свойств. Выбираешь оттуда глазками эти самые имена сервисов, их пространство имен, имена точек подключений.

Потом делаешь WSПрокси по этому определению, по нужным пространству имен сервиса (где твои методы), имени сервиса (где твои методы), и точки подключения. И этот твой корявый адрес с параметрами туда ну никак пихать не надо.

Фактическое соединение будет устанавливаться при вызове метода у WSПрокси по адресу, который содержит точка подключения, который ты выбрал в конструкторе WSПрокси. Адрес этот только для чтения, потому что он определяется в файле, по которому ты WSОпределения создавал.

И никакого отношения этот адрес к адресу, по которому традиционно wsdl получают - "..?wsdl" не имеет. Там всё что угодно может быть.

P.S.
В конструкторе WSПрокси параметр Местоположение есть, я про него и забыл. Он как раз и позволяет переопределить адрес из точки подключения, указанный в файле.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. user1880116 25.06.23 21:21 Сейчас в теме
(1)
Файл загрузили в WSСсылки.
Нахрен ты уже вторую тему за эти WSСсылки цепляешся-то?

Там же механика простая как три копейки. Есть файл wsdl определения. Откуда он берется - вообще безразлично, с диска, с сети, скачивается по урлу с параметрами. Внутри этого файла уже есть описание сервисов - их имена, пространство имен, и точки подключения - те самый адреса,по которым надо дергать сервер для вызова метода сервиса.

Создаешь Новый WSОпределения по файлу, ставишь точку останова и в живую наблюдаешь значения этих свойств. Выбираешь оттуда глазками эти самые имена сервисов, их пространство имен, имена точек подключений.

Потом делаешь WSПрокси по этому определению, по нужным пространству имен сервиса (где твои методы), имени сервиса (где твои методы), и точки подключения. И этот твой корявый адрес с параметрами туда ну никак пихать не надо.

Фактическое соединение будет устанавливаться при вызове метода у WSПрокси по адресу, который содержит точка подключения, который ты выбрал в конструкторе WSПрокси. Адрес этот только для чтения, потому что он определяется в файле, по которому ты WSОпределения создавал.

И никакого отношения этот адрес к адресу, по которому традиционно wsdl получают - "..?wsdl" не имеет. Там всё что угодно может быть.

P.S.
В конструкторе WSПрокси параметр Местоположение есть, я про него и забыл. Он как раз и позволяет переопределить адрес из точки подключения, указанный в файле.
4. user1046602 26.06.23 09:28 Сейчас в теме
(3) Спасибо большое за разьяснения, вроде бы понимание появляется...

Далее ошибка порт не найден. Что делать? Куда смотреть? Soap12 пробовали.

Ошибка при вызове конструктора (WSПрокси)
{ВнешняяОбработка.ПроверкаВэбСервисаОтветхранение.Форма.Форма.Форма(99)}: Прокси = Новый WSПрокси(Определение, "http://severstal.com/pi/O2C/1C", "si_DataLoad_outb_syncService", "si_DataLoad_outb_syncServiceSoap",, , ssl1);
по причине:
Порт не найден. {http://severstal.com/pi/O2C/1C}:si_DataLoad_outb_syncService:si_DataLoad_outb_syncServiceSoap
5. user1046602 05.07.23 13:34 Сейчас в теме
В SOAPUi подключение проходит (см.скрин).
В 1с не получается подключиться


ssl1 = Новый ЗащищенноеСоединениеOpenSSL(Новый СертификатКлиентаWindows(СпособВыбораСертификатаWindows.Авто),	Новый СертификатыУдостоверяющихЦентровWindows());
	Определение = Новый WSОпределения("C:/Users/savina.ikt/Documents/Severstal/ws2/BC_SYS_CLNT_si_DataLoad_outb_syn­cService_2.wsdl", Пользователь, Пароль,,,ssl1); 
	
Прокси = Новый WSПрокси(Определение, "https://piservice.severstal.com:7000/XISOAPAdapter/MessageServlet?senderParty=&senderService=BC_1C_NEFZ&receiverParty=&receive­rService=&interface=si_DataLoad_outb_sync&interfaceNamespace­=http://severstal.com/pi/O2C/1C", "si_DataLoad_outb_syncService", "HTTPS_Port",, , ssl1);
		
	Прокси.Пользователь = Пользователь;
	Прокси.Пароль = Пароль;
Показать


Ошибка при вызове конструктора (WSПрокси)
{ВнешняяОбработка.ПроверкаВэбСервисаОтветхранение.Форма.Форма.Форма(399)}: Прокси = Новый WSПрокси(Определение, "https://piservice.severstal.com:7000/XISOAPAdapter/MessageServlet?senderParty=&senderService=BC_1C_NEFZ&receiverParty=&receive­rService=&interface=si_DataLoad_outb_sync&interfaceNamespace­=http://severstal.com/pi/O2C/1C", "si_DataLoad_outb_syncService", "HTTPS_Port",, , ssl1);
по причине:
Сервис не найден. {https://piservice.severstal.com:7000/XISOAPAdapter/MessageServlet?senderParty=&senderService=BC_1C_NEFZ&receiverParty=&receive­rService=&interface=si_DataLoad_outb_sync&interfaceNamespace­=http://severstal.com/pi/O2C/1C}:si_DataLoad_outb_syncService

В чем искать проблему?

Если процедуре задать URIПространстваИменСервиса = http://severstal.com/pi/O2C/1C подключение происходит, но ошибка 403 возникает в момент получения данных Прокси.MX1(WSПараметр).
По смыслу это нев ерно т.к. ссылка http://severstal.com/pi/O2C/1C - является внутренним пространством имен.
Прикрепленные файлы:
6. user1863362 05.07.23 22:07 Сейчас в теме
(5)
Прокси = Новый WSПрокси(Определение, "https://piservice.severstal.com:7000/XISOAPAdapter/MessageServlet?senderParty=&senderService=BC_1C_NEFZ&receiverParty=&receive­rService=&interface=si_DataLoad_outb_sync&interfaceNamespace­=http://severstal.com/pi/O2C/1C", "si_DataLoad_outb_syncService", "HTTPS_Port",, , ssl1);
является внутренним пространством имен.

Иди уже на курсы.
10. Fox-trot 163 10.07.23 10:47 Сейчас в теме
11. user1046602 10.07.23 14:39 Сейчас в теме
2. starik-2005 3087 25.06.23 15:46 Сейчас в теме
7. user1046602 06.07.23 13:40 Сейчас в теме
(2)Несомненно Ваша статья очень полезна! Но вопросы всетаки остались.

Через пердложенное Вами расширение bomerang подключение не состоялось (см скрины). В др програмке SoapUI подключение успешно с параметром - предварительная авторизация. Может быть в этом дело и как этот момент обойти? В 1с все также - сервис не найден. Со стороны SAP утверждают, что с их сервисом работают из 1с успешно.
Прикрепленные файлы:
8. starik-2005 3087 06.07.23 21:01 Сейчас в теме
9. user1046602 10.07.23 08:51 Сейчас в теме
Тут другая ситуация. Непосредственно к wsdl файлу по ссылке они доступ не предоставляют. wsdl файл прислали отдельно и его мы загружаем как статическую ws ссылку или динамически с непосредственно с рабочей станции. При этом подключение к сервису происходит, а при обращении к его методу МХ1() выдает ошибку 403.
14. user1046602 12.07.23 15:30 Сейчас в теме
(8) Вответе веб-сервиса приходит коллекция пакетовXDTO и в результате в записанном XML - только заголовок, а сами данные в пакете[0]/ Как их получить не понятно?
12. user1936670 10.07.23 22:38 Сейчас в теме
(7)
Со стороны SAP утверждают, что с их сервисом работают из 1с успешно.
Что мешает найти тех, кто успешно работает с их сервисом, и задать им вопросы?
13. user1046602 11.07.23 09:39 Сейчас в теме
(12)
(12) В крупных компаниях, когда м/у разработчиком и конечной целью куча промежуточных лиц концов не найти.
Да все уже забили на эту задачуу) Чисто мой интерес научиться получать документы ч/з веб-сервис. На данном этапе подключение свершилось. Со своей стороны настройки и код не меняли. Видимо, на стороне источника, доступ донастроили. Теперь нужно разобрать ОбъектXDTO.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот