2009-11-03 3 views
10

Я развернул службу JAX-WS и использовал wsimport для генерации кода клиента. Поскольку я запускаю wsimport на localhost, я получил код клиента с binind на адрес «localhost».«Портативный» клиент JAX-WS

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

ответ

13

Это рассматривается в FAQ из JAX-WS:

Q. Как я могу изменить адрес веб-службы динамически для запроса?

((BindingProvider)proxy).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "..."); 
6

Несомненно. Взгляните на JBoss example. Вот соответствующий фрагмент кода:

BindingProvider bp = (BindingProvider) port; 
bp.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "http://your.wsdl.location"); 

Обычно WSDL генерируется и Therfore поставщик WS вставляет соответствующие URL-адреса в WSDL.

 Смежные вопросы

  • Нет связанных вопросов^_^