#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.