Änderung der timeout-Einstellung für eine Achse 1.4 generiert SOAP-Java-client

Ich habe ein problem mit dem ändern der standard-Optionen, durch die eine Achse 1.4 generierten web-service-client-code.
Wir verbrauchen eine bestimmte web-service von einem partner, mit dem alten RPC/Encoded Stil, was im Grunde bedeutet, dass wir nicht in der Lage zu gehen für die Achse 2, sind aber beschränkt auf Achse 1.4.

Den service-client zum abrufen von Daten aus dem remote-server über unseren proxy, es läuft eigentlich ganz gut.

Unserer Anwendung wird bereitgestellt als ein servlet. Die abgerufene Reaktion der fremden web-service ist eingefügt in eine (XML -) Dokument stellen wir unseren internen Systemen/CMS.
Aber wenn der externe service reagiert nicht - was noch nicht passiert, aber könnte passieren jederzeit - wollen wir abbauen schön und Rückgabe in unsere erzeugte XML-Dokument ohne die berechnete web-service-Informationen innerhalb einer vernünftigen Zeit.
Die abgerufenen Daten ist optional, wenn diese bestimmte Berechnung fehlt ist es kein großes Problem).

So, ich habe versucht, ändern Sie die timeout-Einstellungen. Ich habe anwenden/verwenden alle Methoden und die Tasten, die ich finden konnte in der Dokumentation der Achse ändern, um die Verbindung und socket-timeouts, durch die Suche im web.
Keines von diesen scheint der Einfluss der Verbindungs-timeouts.

Kann jemand mir einen Rat geben, wie ändern der Einstellungen für eine Achse stub/service/port basiert auf der version 1.4?

Hier ist ein Beispiel für die verschiedenen Konfigurationen, die ich ausprobiert:

MyService service = new MyServiceLocator();
MyServicePort port = null;

try {
    port = service.getMyServicePort();
    javax.xml.rpc.Stub stub = (javax.xml.rpc.Stub) port;
    stub._setProperty("axis.connection.timeout", 10);
    stub._setProperty(org.apache.axis.client.Call.CONNECTION_TIMEOUT_PROPERTY, 10);
    stub._setProperty(org.apache.axis.components.net.DefaultCommonsHTTPClientProperties.CONNECTION_DEFAULT_CONNECTION_TIMEOUT_KEY, 10);
    stub._setProperty(org.apache.axis.components.net.DefaultCommonsHTTPClientProperties.CONNECTION_DEFAULT_SO_TIMEOUT_KEY, 10);

    AxisProperties.setProperty("axis.connection.timeout", "10");
    AxisProperties.setProperty(org.apache.axis.client.Call.CONNECTION_TIMEOUT_PROPERTY, "10");
    AxisProperties.setProperty(org.apache.axis.components.net.DefaultCommonsHTTPClientProperties.CONNECTION_DEFAULT_CONNECTION_TIMEOUT_KEY, "10");
    AxisProperties.setProperty(org.apache.axis.components.net.DefaultCommonsHTTPClientProperties.CONNECTION_DEFAULT_SO_TIMEOUT_KEY, "10");

    logger.error(AxisProperties.getProperties());

    service = new MyClimateServiceLocator();
    port = service.getMyServicePort();
}

Wies ich die Eigenschaft ändert, bevor die Generierung der service-und nachdem ich die Eigenschaften festzulegen, die während der Initialisierung, ich habe versucht, mehrere andere timeout-Tasten habe ich gefunden, ...
Ich glaube, ich bin wütend über das, und beginnen zu vergessen, was ich bereits versucht!

Was mache ich falsch? Ich meine, da muss es eine option sein, muss es nicht?

Wenn ich nicht finden, eine richtige Lösung, die ich dachte über das einrichten eines synchronisierten thread mit einem timeout in unserem code, der fühlt sich tatsächlich ziemlich umständlich und irgendwie albern.
Können Sie sich vorstellen, was sonst?

Vielen Dank im Voraus

Jens


axis1.4 java soap-client wsdl2java rpc/encoded xml-servlet generiert verändern ändern von setup-stub timeout Verbindungs-socket keys Methoden

Hat u jeder findet eine Lösung für dieses Problem ?

InformationsquelleAutor Jens | 2012-03-16

Schreibe einen Kommentar