Каков наилучший способ написания Java-клиента для веб-службы? - PullRequest
3 голосов
/ 21 февраля 2012

У меня есть проект, который потребует от меня вызова веб-службы SOAP из моего Java-приложения.Мне интересно, какие наборы инструментов я должен смотреть, чтобы сделать это?Все советы приветствуются.

Я смотрел на jax-ws и Axis2, но, похоже, они в основном предназначены для создателей веб-сервисов, а не для потребителей, и я только хочу потреблять.

Спасибо!

Ответы [ 4 ]

3 голосов
/ 21 февраля 2012

Прежде всего вам нужно .Некоторые поставщики услуг могут распространять клиентские классы Java, но WSDL является наиболее безопасным подходом.

Получив его, запустите инструмент, например wsdl2java для аналог в против него.Это создаст кучу классов Java (вам нужна только сторона client ).Эти инструменты также способны генерировать код на стороне сервера, поэтому у вас сложилось впечатление, что они нацелены на разработчиков сервисов.

Это все, что вам нужно - клиентские классы будут обрабатывать маршалинг / демаршаллинг XML и подключение к HTTP.Просто используйте соответствующую заглушку, реализующую интерфейс конечной точки WS.

Вы также можете использовать WebServiceTemplate из портфолио.

2 голосов
/ 21 февраля 2012

Jax-WS поставляется с инструментом под названием wsimport, который вы запускаете против .wsdl службы SOAP. Он генерирует целую кучу классов, которые ваш клиент может использовать для взаимодействия со службой. После этого это просто Java-кодирование.

1 голос
/ 21 февраля 2012

Если вы используете eclipse, вы можете просмотреть это решение:

Какой самый простой способ создания клиента Java из WSDL в кодировке RPC

0 голосов
/ 21 февраля 2012

Если вам нужен быстродействующий клиент, вы можете использовать инструменты JAX-WS для генерации кода, необходимого для использования веб-службы. Но иногда этот подход может генерировать непереносимый код (например, с помощью инструментов Websphere), но вы, возможно, выиграли в производительности.

Spring Framework также предлагает инструменты для создания и использования веб-сервисов, но требует дополнительных усилий для разработки клиента и может потребовать ручного отображения сообщений ввода / вывода с помощью таких технологий, как JAXB или Castor. Вы также можете напрямую читать XML с помощью Spring, это гибкая структура, которая обеспечивает переносимость между контейнерами, но требует дополнительных усилий и времени.

У каждого подхода есть свои плюсы и минусы. Вам решать.

...