указать время ожидания для начального извлечения WSDL с помощью JAX-WS?

#java #wsdl #timeout #jax-ws

#java #wsdl #время ожидания #jax-ws

Вопрос:

Каков наилучший способ указать время ожидания для начального извлечения WSDL с помощью JAX-WS?

Кажется возможным указать тайм-ауты для вызовов веб-служб с помощью:

 ((BindingProvider) port).getRequestContext().put(BindingProviderProperties.CONNECT_TIMEOUT, 2000);
((BindingProvider) port).getRequestContext().put(BindingProviderProperties.REQUEST_TIMEOUT, 2000);
 

но это не влияет на начальное извлечение файла WSDL.

Также представляется возможным глобально указать тайм-аут для всех вызовов HttpURLConnection, используя это системное свойство:

 sun.net.client.defaultConnectTimeout
 

но это влияет на все вызовы, а не только на этот.

Также есть простой способ использовать локальную копию файла WSDL, чтобы это начальное извлечение файла WSDL не выполнялось?

Спасибо

Ответ №1:

Предполагая, что неуправляемые клиенты:

Если вы используете сгенерированные привязки, должен быть конструктор, который принимает URL. Этот URL-адрес может указывать на локальный ресурс (например, путь к классу).) Если вы используете динамический клиент, используйте Service.create(URL, QName) метод, чтобы сделать то же самое. Смотрите Примеры здесь.

В управляемом клиентском контейнере служба может быть загружена с использованием связанного WSDL, как указано в JSR 109.