svcutil.exe - Как получить WSDL - PullRequest
5 голосов
/ 06 апреля 2011

Я работаю с интерфейсом SOAP. Поставщик интерфейса испытывает проблемы с получением полного WSDL (длинная история). Они попросили меня использовать svcutil.exe для генерации всего, что мне нужно. Из того, что я могу сказать, svcutil.exe

  • требуются окна - у меня нет доступного окна
  • генерирует C # или VisualBasic

Было бы замечательно, если бы он мог просто выплюнуть WSDL. Или, если я могу что-то сделать с Linux, это тоже было бы здорово.

Есть ли у меня какие-либо варианты отсюда, или мне просто нужно подождать, пока провайдер доставит мне WSDL.

Я полагаю, что вопрос, учитывая URL и инструкции по использованию svcutil.exe, как мне написать код для использования службы SOAP только в Linux?

Ответы [ 2 ]

14 голосов
/ 06 апреля 2011

Если вы используете Linux, вы можете сохранить его с помощью curl

   curl url > service.wsdl

, чтобы получить WeatherForcast WSDL

   curl http://www.webservicex.net/WeatherForecast.asmx?WSDL > weatherForcast.wsdl
1 голос
/ 06 апреля 2011

@ grantk уже продемонстрировал самый простой метод: если вы знаете, где размещается WSDL, вы можете просто получить документ, используя свой инструмент по своему выбору.

Но, как вы конкретно спросили об использовании SVCUtil: вы можете найти окно Windows, использовать SVCUtil для получения WSDL, а затем вернуться в свой стек linux (и Java?) И сгенерировать клиентские прокси из этого WSDL для вызова службы, используя ваш выбор веб-службы.

Если целевая служба поддерживает WS-MetadataExchange или Обнаружение веб-службы XML , SVCUtil найдет и загрузит WSDL для вас : см. это HowTo на веб-сайте Microsoft MSDN.

Используя пример службы прогноза погоды, который использовался @ grantk , вы можете попросить SVCUtil запросить службу и загрузить метаданные следующим образом:

svcutil /t:metadata http://www.webservicex.net/WeatherForecast.asmx

(я уверен, что есть подобные инструменты, использующие WS-MetadataExchange в мире Linux, но мой опыт работы с SVCUtil.)

...