Генерация клиентских заглушек из WSDL - PullRequest
3 голосов
/ 09 сентября 2011

Я начинаю новый проект с коммерческим поставщиком. Мне нужно написать модуль интеграции в нашем приложении, чтобы использовать веб-сервис коммерческого поставщика. Итак, WSDL не контролируется нами.

Я думаю, что общий подход заключается в разработке "Contract First" и создании заглушек из файла WSDL. Я хотел бы знать, какие технологии доступны для этого? Я действительно хотел бы самый простой подход, который работает. Мы широко используем Maven 3.0.3 и Spring 3.0.5. Могу ли я использовать Spring WebServiceTemplate?

Пожалуйста, дайте мне знать, если вопрос не ясен или требуются дополнительные детали.

Спасибо, Тапасви

Ответы [ 3 ]

5 голосов
/ 09 сентября 2011

Вы можете создать java-заглушки с помощью maven plugin для JAX-WS .Затем вы можете использовать заглушки в spring , чтобы представить их как веб-сервис.К счастью, это довольно просто, что иногда очень полезно.Я сделал эту ошибку давным-давно, и это было довольно больно, потому что мне приходилось размещать код там, где он не принадлежал.В последние несколько лет я использовал профиль maven для создания заглушек по требованию, а затем слил их «вручную», чтобы добавить дополнительный код.Конечно, это возможно только в том случае, если WSDL меняется не очень часто.

4 голосов
/ 09 сентября 2011

JAX-WS включен в стандартный дистрибутив Java 6, что делает его очень простым в использовании.

Создайте заглушки с wsimport в JDK (не забудьте включить как можно больше предупреждений, так как вы хотите знать все, что может вызвать проблемы).

4 голосов
/ 09 сентября 2011

Я использовал axis, и самый простой способ сделать это - запустить утилиту wsdl2java и передать местоположение веб-службы вместе с параметром? Wdsl.

Я знаю, что многие IDE в эти дни позволят вам генерировать заглушки изнутри. MyeclipseIDE имеет опцию для приема WSDL, как и intelliJ. Я думаю, что более безопасный подход - использовать wsdl. Также, если вы используете jax-ws, вы можете попробовать

wsimport -keep -verbose расположение к wsdl

...