Обращение к Web-сервису
Материал из BiTel WiKi
Версия от 13:05, 16 июля 2013; Администратор (Обсуждение | вклад)
1. Получение WSDL файла с описанием сервиса. Загрузка браузером либо иным способом по URL вида: http://bumer.core.ufanet.ru/ufanettest/ws/ws1c.1cws?wsdl WSDL файла. Сохраняем в файл, назовём его ws1c.wsdl.
2. Генерация Java классов на основании WSDL описания с помощью утилиты wsimport Oracle JDK, исходные файлы генерируются в пакет ru.bgcrm.plugin.ocu.ws, корневой каталог исходников ~/workspace/CRM/src.
/opt/java/jdk/bin/wsimport ws1c.wsdl -Xnocompile -keep -extension -d ~/workspace/CRM/src -p ru.bgcrm.plugin.ocu.ws
3. Пример вызова Web сервиса:
import ru.bgcrm.plugin.ocu.ws.WebService; import ru.bgcrm.plugin.ocu.ws.WebServicePortType; .... // код где-то внутри функции WebService service = new WebService( new URL( "http://bumer.core.ufanet.ru/ufanettest/ws/ws1c.1cws" ), new QName( "http://ws1c.ufanet.ru", "WebService" ) ); WebServicePortType port = service.getWebServiceSoap(); // вызов собственно функции сервиса String client = port.getClientByINN( "1234567890" );
Здесь:
- http://bumer.core.ufanet.ru/ufanettest/ws/ws1c.1cws - URL, по которому доступен сервис.
- http://ws1c.ufanet.ru - targetNamespace Web-сервиса.
- WebService - name Web-сервиса.
Параметры targetNamespace и name отображаются в начале WSDL описания, в данном случае так:
<definitions name="WebService" targetNamespace="http://ws1c.ufanet.ru"> <types> ...
Название класса-сервиса и класса-порта (WebService и WebServicePortType) может различаться для разных сервисов.