В браузере поссылке открывается окно с текстом:
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/webm/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Ссылки цепляешся-то?
Там же механика простая как три копейки. Есть файл wsdl определения. Откуда он берется - вообще безразлично, с диска, с сети, скачивается по урлу с параметрами. Внутри этого файла уже есть описание сервисов - их имена, пространство имен, и точки подключения - те самый адреса,по которым надо дергать сервер для вызова метода сервиса.
Создаешь Новый WSОпределения по файлу, ставишь точку останова и в живую наблюдаешь значения этих свойств. Выбираешь оттуда глазками эти самые имена сервисов, их пространство имен, имена точек подключений.
Потом делаешь WSПрокси по этому определению, по нужным пространству имен сервиса (где твои методы), имени сервиса (где твои методы), и точки подключения. И этот твой корявый адрес с параметрами туда ну никак пихать не надо.
Фактическое соединение будет устанавливаться при вызове метода у WSПрокси по адресу, который содержит точка подключения, который ты выбрал в конструкторе WSПрокси. Адрес этот только для чтения, потому что он определяется в файле, по которому ты WSОпределения создавал.
И никакого отношения этот адрес к адресу, по которому традиционно wsdl получают - "..?wsdl" не имеет. Там всё что угодно может быть.
P.S.
В конструкторе WSПрокси параметр Местоположение есть, я про него и забыл. Он как раз и позволяет переопределить адрес из точки подключения, указанный в файле.
Нахрен ты уже вторую тему за эти WSСсылки цепляешся-то?
Там же механика простая как три копейки. Есть файл wsdl определения. Откуда он берется - вообще безразлично, с диска, с сети, скачивается по урлу с параметрами. Внутри этого файла уже есть описание сервисов - их имена, пространство имен, и точки подключения - те самый адреса,по которым надо дергать сервер для вызова метода сервиса.
Создаешь Новый WSОпределения по файлу, ставишь точку останова и в живую наблюдаешь значения этих свойств. Выбираешь оттуда глазками эти самые имена сервисов, их пространство имен, имена точек подключений.
Потом делаешь WSПрокси по этому определению, по нужным пространству имен сервиса (где твои методы), имени сервиса (где твои методы), и точки подключения. И этот твой корявый адрес с параметрами туда ну никак пихать не надо.
Фактическое соединение будет устанавливаться при вызове метода у WSПрокси по адресу, который содержит точка подключения, который ты выбрал в конструкторе WSПрокси. Адрес этот только для чтения, потому что он определяется в файле, по которому ты WSОпределения создавал.
И никакого отношения этот адрес к адресу, по которому традиционно wsdl получают - "..?wsdl" не имеет. Там всё что угодно может быть.
P.S.
В конструкторе WSПрокси параметр Местоположение есть, я про него и забыл. Он как раз и позволяет переопределить адрес из точки подключения, указанный в файле.
(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
Если процедуре задать URIПространстваИменСервиса = http://severstal.com/pi/O2C/1C подключение происходит, но ошибка 403 возникает в момент получения данных Прокси.MX1(WSПараметр).
По смыслу это нев ерно т.к. ссылка http://severstal.com/pi/O2C/1C - является внутренним пространством имен.
(2)Несомненно Ваша статья очень полезна! Но вопросы всетаки остались.
Через пердложенное Вами расширение bomerang подключение не состоялось (см скрины). В др програмке SoapUI подключение успешно с параметром - предварительная авторизация. Может быть в этом дело и как этот момент обойти? В 1с все также - сервис не найден. Со стороны SAP утверждают, что с их сервисом работают из 1с успешно.
Тут другая ситуация. Непосредственно к wsdl файлу по ссылке они доступ не предоставляют. wsdl файл прислали отдельно и его мы загружаем как статическую ws ссылку или динамически с непосредственно с рабочей станции. При этом подключение к сервису происходит, а при обращении к его методу МХ1() выдает ошибку 403.
(8) Вответе веб-сервиса приходит коллекция пакетовXDTO и в результате в записанном XML - только заголовок, а сами данные в пакете[0]/ Как их получить не понятно?
(12)
(12) В крупных компаниях, когда м/у разработчиком и конечной целью куча промежуточных лиц концов не найти.
Да все уже забили на эту задачуу) Чисто мой интерес научиться получать документы ч/з веб-сервис. На данном этапе подключение свершилось. Со своей стороны настройки и код не меняли. Видимо, на стороне источника, доступ донастроили. Теперь нужно разобрать ОбъектXDTO.