Генерация запроса/ответа XML из WSDL
Есть ли способ генерировать форматы запросов и ответов XML только из WSDL файла - если веб-сервис не работает прямо сейчас.
SoapUI не дает мне ответа, если он не связывается с Webservice с запросом. Есть ли другой инструмент, который может это сделать?
Я должен предположить, что эта информация доступна, потому что без нее - фреймворки клиента, такие как Axis/JAXWS и т.д., Не смогут генерировать заглушки для генерации запроса и затем интерпретации ответа.
Ответы
Ответ 1
Попробуйте этот онлайн-инструмент: https://www.wsdl-analyzer.com. Он кажется бесплатным и делает намного больше, чем генерирует XML для запросов и ответов. Существует также: https://www.oxygenxml.com/xml_editor/wsdl_soap_analyzer.html, который можно загрузить, но не бесплатно.
Ответ 2
Я использую SOAPUI 5.3.0, у него есть опция для создания ответа также (через wsdl), вы даже можете создать макет службы, которая будет отвечать при отправке запроса. Процедура следующая:
- Щелкните правой кнопкой мыши на своем проекте и выберите опцию New Mock Service, которая создаст макет службы.
- Щелкните правой кнопкой мыши на mock service и выберите New Mock Operation, который будет создавать ответ, который вы можете использовать в качестве шаблона.
Ответ 3
Самый простой способ - использовать эту ссылку на расширение хром, запросить веб-службу
Ответ 4
Parasoft - это инструмент, который может это сделать. Я сделал это, используя этот инструмент в своем прошлом рабочем месте. Вы можете создать запрос в Parasoft SOATest и получить ответ в Parasoft Virtualize. Это действительно стоит. Однако у Parasoft Virtualize теперь есть бесплатная версия сообщества, из которой вы можете генерировать ответные сообщения из WSDL. Вы можете скачать с сайта сообщества parasoft
Ответ 5
Выполнение этого поможет вам понять, как структурирована WSDL и как она выполняет вашу работу. Это хорошая возможность обучения. Это можно сделать с помощью soapUI, если у вас есть только URL-адрес WSDL. (Я использую soapUI 5.2.1). Если у вас действительно есть полный WSDL в качестве файла, доступного вам, вам даже не нужен soapUI. Название вопроса говорит "Request & Response XML", в то время как орган вопроса говорит "Форматы запросов и ответов XML", которые я интерпретирую как схему запроса и ответа. Во всяком случае, следующее даст вам схему, которую вы можете использовать на XSD2XML для генерации образца XML.
- Начните "Новый проект мыла", введите название проекта и местоположение WSDL; выберите "Создать запросы", отмените выбор других параметров и нажмите "ОК".
- В дереве "Проект" с левой стороны щелкните правой кнопкой мыши интерфейс и выберите "Показать средство просмотра интерфейса".
- Выберите вкладку "Содержимое WSDL".
- Вы должны увидеть текст WSDL с правой стороны; найдите блок, начинающийся с "wsdl: types", ниже которого представлена схема ввода и вывода сообщений.
- Каждое определение схемы начинается с чего-то вроде
<s:element name="GetWeather">
и заканчивается </s:element>
. - Скопируйте блок в текстовый редактор; над этим блоком add:
<?xml version="1.0" encoding="UTF-8"?> <s:schema xmlns:s="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
- Ниже блока скопированного XML добавьте
</s:schema>
- Решите, если вам нужно "UTF-16" вместо "UTF-8",
- "S:" и "xmlns: s" должны совпадать с скопированным вами блоком (шаг 5)
- Сохраните этот файл с расширением ".xsd"; если у вас есть "Редактор XML-копий" или какой-то такой инструмент (возможно, XML Spy), вы должны проверить, что это хорошо сформированный XML и действительная схема.
- Повторите для всех элементов "элемента" в правой панели soapUI, пока не достигнете
- Таким образом вы получите некоторые определения типов, которые могут вас не интересовать. Если вы хотите выбрать и выбрать, используйте следующий метод: просмотрите элементы "wsdl: operation" в разделе "wsdl: portType" в тексте WSDL ниже типа. Они будут иметь "wsdl: input" и "wsdl: output". Возьмите имена сообщений из "wsdl: input" и "wsdl: output". Сопоставьте их с именами "wsdl: message", которые, вероятно, будут превышать записи "wsdl: portType" в WSDL. Получите имя элемента "wsdl: part" из элемента "wsdl: message" и ищите это имя как имя элемента в разделе "wsdl: types". Это будет интересной для вас схемой.
Вы можете попробовать выполнить процедуру выше, используя WSDL по адресу http://www.webservicex.com/globalweather.asmx?wsdl
Ответ 6
Поскольку вы говорите, что веб-сервис не работает прямо сейчас, вы можете сделать это, создав mockservices, который создаст образец ответа.
Ответ 7
Для проверки вашего файла WSDL онлайн ссылки:
https://wsdlbrowser.com/
https://wsdlanalyzer.com/