Я работаю с устаревшим компонентом, в котором мы взаимодействуем с веб-службой SOAP (технология, которую я абсолютно, безусловно, ненавижу), используя некоторый клиентский код, созданный с использованием библиотеки JAXRPC-RI (эталонная реализация). 1001 *
Меня интересует возможность установить тайм-аут с заглушками, чтобы в случае, если сервер веб-служб не отвечает в течение X секунд, приложение не находилось там вечно, ожидая ответа.
Я использую для работы с клиентами / заглушками, сгенерированными Apache Axis, в которых вы можете просто использовать org.apache.axis.client.Stub.setTimeout()
для установки времени ожидания.
Я не могу понять, как установить тайм-аут при использовании заглушек, созданных с помощью JAXRPC-RI:
- Класс порта, который я создаю, расширяет
com.sun.xml.rpc.client.StubBase
и реализует javax.xml.rpc.Stub
и com.sun.xml.rpc.spi.runtime.StubBase
.
- В JavaDocs ни для одного из этих классов не указан какой-либо таймаут или метод для этого.
- Попытка кода, подобного
stub._setProperty("axis.connection.timeout", 1000);
, приводит к исключению во время выполнения: javax.xml.rpc.JAXRPCException: Stub does not recognize property: axis.connection.timeout
Есть ли у кого-нибудь идеи о том, как установить / применить тайм-аут при использовании клиента JAXRPC-RI? Это вообще возможно?