#java #web-services #maven #wsdl #webservice-client
#java #веб-сервисы #maven #wsdl #веб-сервис-клиент
Вопрос:
Нужен совет о том, как настроить maven-сборку client-jar для java-first webservices…
Ранее я работал с веб-сервисами, основанными на wsdl, где вы просто сохраняете wsdl в системе управления версиями, а затем генерируете из него клиентские классы java.
Но недавно я переключился на другой проект, где большинство веб-сервисов уже существуют как java-first, и теперь мы должны преобразовать сборки из Ant в Maven.
Каков наилучший способ настроить это в maven и системе управления версиями, чтобы убедиться, что вы получаете последнюю версию wsdl?
Очевидно, что вы не хотите сохранять wsdl в системе управления версиями, поскольку он генерируется во время выполнения…
Я предполагаю, что в вашей maven-сборке есть один способ запустить app-server на localhost, развернуть на нем webservice, затем создать client-jar из localhost-url. Проблема в том, что сборка может завершиться неудачно, если некоторые зависимости (db-connections, другой веб-сервис и т.д.) недоступны во время сборки.
Итак, есть ли какой-нибудь лучший способ сделать это?
Ответ №1:
Я предполагаю, что в вашей maven-сборке есть один способ запустить app-server на localhost, развернуть на нем webservice, затем создать client-jar из localhost-url.
Вместо этого вы могли бы использовать плагин maven wsgen для генерации клиентских артефактов в каталоге по вашему выбору. Генерация wsdl здесь была бы необязательной.
Комментарии:
1. Спасибо stratwine — да, это явно кажется лучшим способом сделать это — попробую и вернусь.
Ответ №2:
Нет ничего плохого в проверке WSDL в системе управления версиями. каждый раз, когда кто-то изменяет общедоступные методы, им необходимо обновлять WSDL вручную, или ваш вариант сделать это, развернув его на локальном хосте, также является хорошей идеей, но генерация клиента будет не такой частой, поэтому вы тоже можете положиться на это.