Anschluss-details & timeouts in eine java-web-service-client
Habe ich zum implementieren eines webservice-client zu einer gegebenen WSDL-Datei.
Ich benutzte die SDK 'wsimport' tool zum erstellen von Java-Klassen aus der WSDL sowie eine Klasse, die wrap ist eine webservice - Methode (enhanceAddress(auth, param, address)
) in eine einfache java-Methode. So weit, So gut. Der webservice ist funktional und die Rückgabe korrekt. Der code sieht so aus:
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);
}
Problem jetzt: ich brauche, um Informationen über die Verbindung und alle Fehler, die auftreten können, um zu bevölkern diverse JMX-Werte (wie COUNT_READ_TIMEOUT, COUNT_CONNECT_TIMEOUT, ...)
Leider ist die Methode nicht offiziell werfen Ausnahmen, so in Ordnung, um detaillierte Informationen zu einem ConnectException, ich getCause()
auf die ClientTransportException
werden geworfen.
Schlimmer noch: ich habe versucht, zum testen der read-timeout-Wert, aber es gibt keine. Ich habe die service-Standort in der wsdl-Datei für die post-Anfrage an ein php-Skript, das einfach wartet ewig und kommt nicht zurück. Guess what: Das web-service-client nicht nicht Zeit heraus, aber wartet ewig (ich tötete die app nach 30+ Minuten warten). Das ist nicht eine option für meine Anwendung, da ich schließlich läuft der tcp-verbindungen, wenn einige von Ihnen "hängenbleibt".
Den enhanceAddress(auth, param, address)
- Methode ist nicht implementiert, jedoch versehen mit javax.Zeugen Jehovas sind.* Anmerkungen, was bedeutet, dass ich nicht sehen/ändern/prüfen der code, der tatsächlich ausgeführt wird.
Muss ich irgendeine option, sondern werfen das ganze wsimport/javax.jsw-Zeug Weg und setze meine eigenen soap-client?
InformationsquelleAutor f1sh | 2010-06-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
setup read-timeout und Verbindung-Zeitüberschreitungen Sie können konfigurieren, dass die Bindung von Parametern beim einrichten Ihrer Service-und Port-Instanzen:
nun, wenn Sie ausführen, einen Dienst über "Port" erhalten Sie Antwort von Zeitüberschreitungen und/oder Verbindungs-timeouts, wenn das backend ist langsam zu reagieren. die Werte Folgen, die timeout-Werte der Socket-Klasse.
wenn diese timeouts überschritten werden, erhalten Sie timeout-Ausnahme oder eine Verbindung Ausnahme und du kannst die counter-code zu verfolgen, wie viele Sie bekommen.
Ich habe ein ähnliches problem, ABER der timeout passiert, wenn ich den port, wie kann ich es lösen??
InformationsquelleAutor Helter Scelter