Pracuję z odrobiną starszego komponentu, w którym wchodzimy w interakcję z usługą sieciową SOAP (technologia absolutnie, pozytywnie brzydząca) za pomocą kodu klienta zbudowanego przy użyciu biblioteki JAXRPC-RI (implementacja referencyjna).Jak ustawić limit czasu połączenia podczas korzystania z klienta usług WWW JAXRPC-RI?
Jestem zainteresowany ustawieniem limitu czasu za pomocą kodów pośredniczących, aby na wypadek, gdyby serwer usług internetowych nie odpowiedział w ciągu X sekund, aplikacja nie ustawi się tam na zawsze, czekając na odpowiedź.
Używam do pracy z klientami/stubami generowanymi przez Apache Axis, w których można po prostu użyć org.apache.axis.client.Stub.setTimeout()
, aby ustawić limit czasu.
Dla życia mnie nie mogę dowiedzieć się, jak ustawić limit czasu podczas korzystania Stubs utworzone z JAXRPC-RI:
- Klasa portu Mam instancji rozciąga
com.sun.xml.rpc.client.StubBase
i wdrażajavax.xml.rpc.Stub
icom.sun.xml.rpc.spi.runtime.StubBase
. - Dokumentacja JavaDocs dla żadnej z tych klas nie wspomina o żadnym limicie czasu ani metodzie, aby to zrobić.
- Próbując kod jak
stub._setProperty("axis.connection.timeout", 1000);
powoduje wyjątek w środowisku wykonawczym:javax.xml.rpc.JAXRPCException: Stub does not recognize property: axis.connection.timeout
Czy ktoś ma jakieś pomysły, w jaki sposób ustawić/wymusić limit czasu przy użyciu klienta JAXRPC-RI? Czy to możliwe?
Jest to opcja, ale naprawdę chciałbym to zrobić w ramach kodu/klienta API usług internetowych, jeśli to możliwe. Dziękuję Ci. –