Сведения о соединении и время ожидания в клиенте веб-службы Java

Я должен реализовать клиент веб-службы для данного файла WSDL. Я использовал инструмент wsimport в SDK для создания классов Java из WSDL, а также класс, который обертывает единственный метод веб-службы (enhanceAddress(auth, param, address)) в простой метод Java. Все идет нормально. Веб-сервис функционален и корректно возвращает результаты. Код выглядит так:

try {
  EnhancedAddressList uniservResponse = getWebservicePort().enhanceAddress(m_auth, m_param, uniservAddress);
  //Where the Port^ is the HTTP Soap 1.2 Endpoint
}catch (Throwable e) {
  throw new AddressValidationException("Error during uniserv webservice request.", e);
}

Проблема сейчас: мне нужно получить информацию о соединении и любую ошибку, которая может возникнуть, чтобы заполнить различные значения JMX (такие как COUNT_READ_TIMEOUT, COUNT_CONNECT_TIMEOUT, ...). К сожалению, метод официально не генерирует никаких исключений, поэтому по порядку чтобы получить подробную информацию о ConnectException, мне нужно использоватьgetCause() наClientTransportException это будет брошено.

Еще хуже: я попытался проверить значение времени ожидания чтения, но его нет. Я изменил расположение службы в файле wsdl, чтобы отправить запрос в скрипт php, который просто ждет вечно и не возвращается. Угадайте, что: клиент веб-службы делаетне тайм-аут, но ждет всегда (я убил приложение после 30+ минут ожидания). Это не вариант для моего приложения, так как в конце концов у меня заканчиваются соединения tcp, если некоторые из них застряли.

enhanceAddress(auth, param, address) Метод не реализован, но аннотирован javax.jws. * Аннотации, означающие, что я не могу видеть / изменять / проверять код, который фактически выполняется.

Есть ли у меня какой-либо вариант, кроме как выбросить весь wsimport / javax.jsw-вещи и реализовать свой собственный мыльный клиент?

Ответы на вопрос(1)

Ваш ответ на вопрос