Генерация запроса/ответа XML из WSDL

Есть ли способ генерировать форматы запросов и ответов XML только из WSDL файла - если веб-сервис не работает прямо сейчас.

SoapUI не дает мне ответа, если он не связывается с Webservice с запросом. Есть ли другой инструмент, который может это сделать?

Я должен предположить, что эта информация доступна, потому что без нее - фреймворки клиента, такие как Axis/JAXWS и т.д., Не смогут генерировать заглушки для генерации запроса и затем интерпретации ответа.

Ответ 2

Я использую SOAPUI 5.3.0, у него есть опция для создания ответа также (через wsdl), вы даже можете создать макет службы, которая будет отвечать при отправке запроса. Процедура следующая:

  1. Щелкните правой кнопкой мыши на своем проекте и выберите опцию New Mock Service, которая создаст макет службы.
  2. Щелкните правой кнопкой мыши на 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.

  1. Начните "Новый проект мыла", введите название проекта и местоположение WSDL; выберите "Создать запросы", отмените выбор других параметров и нажмите "ОК".
  2. В дереве "Проект" с левой стороны щелкните правой кнопкой мыши интерфейс и выберите "Показать средство просмотра интерфейса".
  3. Выберите вкладку "Содержимое WSDL".
  4. Вы должны увидеть текст WSDL с правой стороны; найдите блок, начинающийся с "wsdl: types", ниже которого представлена схема ввода и вывода сообщений.
  5. Каждое определение схемы начинается с чего-то вроде <s:element name="GetWeather"> и заканчивается </s:element>.
  6. Скопируйте блок в текстовый редактор; над этим блоком add: <?xml version="1.0" encoding="UTF-8"?> <s:schema xmlns:s="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
  7. Ниже блока скопированного XML добавьте </s:schema>
  8. Решите, если вам нужно "UTF-16" вместо "UTF-8",
  9. "S:" и "xmlns: s" должны совпадать с скопированным вами блоком (шаг 5)
  10. Сохраните этот файл с расширением ".xsd"; если у вас есть "Редактор XML-копий" или какой-то такой инструмент (возможно, XML Spy), вы должны проверить, что это хорошо сформированный XML и действительная схема.
  11. Повторите для всех элементов "элемента" в правой панели soapUI, пока не достигнете
  12. Таким образом вы получите некоторые определения типов, которые могут вас не интересовать. Если вы хотите выбрать и выбрать, используйте следующий метод: просмотрите элементы "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, который создаст образец ответа.