Подключайтесь к разным серверам, предлагающим один и тот же веб-сервис с WSDL - PullRequest
0 голосов
/ 16 января 2012

Я совершенно новичок в веб-службах, и все, что я смог сделать, это Hello World

Моя ситуация следующая: у меня есть несколько серверов, которые предоставляют файл WSDL, все серверы предоставляютодин и тот же файл и методы, они просто имеют разные IP / порты.Кроме того, каждый сервер содержит свой собственный набор пользователей.

Я знаю, как общаться для работы с одним WSDL одновременно, но мне нужно 2 вещи:

  • Возможность добавлениявеб-сервисы динамически (подключаться / отключаться от других серверов)
  • Возможность выполнять методы на нужном сервере в качестве подходящего пользователя (вы не можете сделать запрос, если ваш пользователь не существует на сервере, который вы запрашиваете)

Понятия не имею, с чего начать, может кто-нибудь направить меня в направлении решения этих двух проблем?

1 Ответ

0 голосов
/ 16 января 2012

Вы не конкретны с точки зрения библиотек, которые вы используете.

Например, если вы используете CXF (Jax-WS в целом), вы можете сделать следующее:

// change endpoint URL
((BindingProvider)service).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "new url");
// new username. password will be provided by WS callback
((BindingProvider)service).getRequestContext().put(SecurityConstants.USERNAME, "username");

Если вы используете Spring для инфраструктуры, вы можете автоматически связать все прокси одним оператором:

@Autowired
private Map<String, ServiceInterface> interfaces;

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

...