генерировать WSDL из Java WS - PullRequest
       17

генерировать WSDL из Java WS

0 голосов
/ 07 августа 2010

Учитывая общедоступную веб-службу SOAP и отсутствие WSDL, мне нужно создать клиент .NET, который может взаимодействовать с этой службой.

Я разработчик .NET, ищу простой способ создания файла WSDL с учетом этого URL?Я бы предпочел сделать это с помощью какого-либо инструмента прямо с моего компьютера для разработки Windows, но единственное, что я нашел, это инструмент javatowsdl в Apache CXF или Axis2.Существуют ли какие-либо инструменты (коммерческие или иные), которые бы этого достигли?Я действительно надеюсь не писать свой собственный WSDL вручную.

Если мне нужно пойти по пути javatowsdl, можно ли использовать этот инструмент, не настраивая сервер для запуска apache / tomcat и т. Д.?Кто-нибудь знает шаги, необходимые для фактического выполнения этой работы?

Обновление: В этом КБ описывается создание прокси с помощью wsdl.exe или VS, оба из которых я делал ранее.Интересная часть этого KB - это верхняя часть, где упоминается использование WSTK от IBM для получения WSDL в первую очередь.WSTK больше не существует, и я ищу альтернативы.http://support.microsoft.com/kb/307324 Надеюсь, это поможет немного прояснить ситуацию.

Ответы [ 5 ]

2 голосов
/ 09 августа 2010

Я не видел упомянутого, но вы пытались добавить '? Wsdl' в конец мыльного URL и попробовать его в браузере?

Скажем, например, URL-адрес службы http://www.someserver.com/service/NewService. Тогда вы можете попробовать это в любом веб-браузере и посмотреть, работает ли

http://www.someserver.com/service/NewService?wsdl

Если браузер использует wsdl, вы также можете использовать тот же URL-адрес для wsdl.exe, и он создаст для вас заглушки .NET-клиента.

0 голосов
/ 12 августа 2010

who После долгих чтений и исследований я нашел этот маленький драгоценный камень: http://wscfblue.codeplex.com/ Он взял XSD и сгенерировал файл WSDL, а также может сгенерировать прокси-код, если вы выберете. У меня еще не все работает от начала до конца, но я подумал, что я смогу опубликовать эту статью для всех, у кого может возникнуть аналогичный вопрос. Если я запомню, я отправлю какие-нибудь заметки по этому поводу, как только закончу.

0 голосов
/ 07 августа 2010

Не знаете, из чего вы действительно хотите создать WSDL ...? Вы говорите, что речь идет об общедоступной службе SOAP без WSDL - что означает, что эта служба уже не предлагает WSDL сама по себе, верно?

Так что же вы точно знаете об этой услуге? Потому что, если вы знаете только URL-адрес, где вызывать службу без какой-либо дополнительной спецификации (и опять же, если служба уже не публикует свой WSDL, как на том же URL с добавленным? Wsdl), я полагаю, вы не у меня действительно есть основания для создания чего-либо.

Так что здесь требуется дополнительная информация ...

0 голосов
/ 09 августа 2010

Использование Java2WSDL объясняется здесь . Для этого требуется Java-классы или интерфейсы , описывающие веб-сервис для выполнения перевода (т. Е. Вы не можете просто дать ему запрос / ответ SOAP и надеяться, что он отработает оттуда). WSDL2Java может генерировать Java привязок на стороне клиента при наличии WSDL (что, вероятно, бесполезно, если вы хотите написать клиент веб-службы .NET). Все это можно сделать без запуска сервера приложений Java (поскольку вы на самом деле не размещаете веб-сервис, вы просто описываете его входы и выходы).

Поэтому, если вы хотите пойти по этому пути, вам нужно разработать интерфейсы на стороне сервера в Java и использовать Java2WSDL для генерации WSDL. Оттуда вы можете передать WSDL в Visual Studio в соответствии со статьей базы знаний, которую вы связали.

Теперь я могу пообещать вам, что интерфейс будет корректным. Независимо от того, можете ли вы получить правильные входные и выходные данные, все еще остается вопрос Document против RPC и всех других параметров, которые могут быть неочевидны при просмотре запросов / ответов SOAP.

0 голосов
/ 07 августа 2010

Предположим, вы используете Visual Studio, щелкните правой кнопкой мыши свой проект и нажмите Add Web Reference. Затем введите URL-адрес конечной точки, и с этого момента все будет хорошо. Более подробная информация здесь .

...