Как изменить конечную точку URL веб-сервиса?

Я генерировал клиент веб-сервиса, использующий JBoss utils (совместимый JAX-WS) использование Eclipse 'клиент веб-сервиса от wsdl'.

Так, единственной вещью, которую я обеспечил, был URL к веб-сервису WSDL.

Теперь, поставщик веб-сервиса говорит мне изменять "URL клиентского доступа к приложению конечной точки" веб-сервиса.

Что это и как изменить его?

98
задан EugeneP 22 March 2010 в 08:56
поделиться

1 ответ

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

Использование поставщика привязки для установки URL-адреса конечной точки

Первый вариант - изменить значение свойства BindingProvider.ENDPOINT_ADDRESS_PROPERTY для BindingProvider (каждый прокси реализует javax .xml.ws.BindingProvider interface):

...
EchoService service = new EchoService();
Echo port = service.getEchoPort();

/* Set NEW Endpoint Location */
String endpointURL = "http://NEW_ENDPOINT_URL";
BindingProvider bp = (BindingProvider)port;
bp.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, endpointURL);

System.out.println("Server said: " + echo.echo(args[0]));
...

Недостатком является то, что это работает только тогда, когда исходный WSDL все еще доступен. Не рекомендуется.

Используйте WSDL для получения URL-адреса конечной точки

Второй вариант - получить URL-адрес конечной точки из WSDL.

...
URL newEndpoint = new URL("NEW_ENDPOINT_URL");
QName qname = new QName("http://ws.mycompany.tld","EchoService"); 

EchoService service = new EchoService(newEndpoint, qname);
Echo port = service.getEchoPort();

System.out.println("Server said: " + echo.echo(args[0]));
...
165
ответ дан 24 November 2019 в 05:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: