JAX-WS Timeout wirft keine Exception / bleibt hängen

Andi22

Mitglied
Hallo,

ich habe folgendes Problem: Ich will bei einem Web Service Aufruf einen Timeout setzen und erwarte, dass ich nach Ablauf des Timeouts eine Exception bekomme, aber die wird nie geworfen - der Web Service Aufruf blockiert einfach die ganze Zeit. Hier der relveante Codeauszug:

Java:
//Set properties to web service port
BindingProvider bp = (BindingProvider) port;
Map<String, Object> rc = bp.getRequestContext();
rc.put(JAXWSProperties.CONNECT_TIMEOUT, new Integer(CLIENT_TIMEOUT_MS));
rc.put("com.sun.xml.ws.request.timeout", new Integer(REQUEST_TIMEOUT_MS));
rc.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, webServiceEndpoint);

//Do notify web service call
port.webServiceCall(); //hier wird blockiert, anstatt nach Ablauf des Timeouts eine Exception zu werfen

Dass der gesetzte Timeout ignoriert wird, kann ich mittlerweile ausschließen, da ich in der Web Service Methode webServiceCall() einenTest mit Thread.sleep(15000) gemacht habe, wobei der Timeout auf 10000 gesetzt wurde. Wenn kein Timeout gesetzt war, ging es nach 15 Sekunden weiter, andernfalls (mit gesetztem Timeout) blockierte der Aufruf ewig anstatt eine TimeoutException zu werfen.

Irgendwer eine Idee?

Getestet wurde auf einer lokalen Maschine (WIN XP) innerhalb eines Glassfish:
Application Server: Glassfish 2.1
JAX-WS Version: 2.1.3.1
JDK: C:/Programme/JDK160_11/jre/..\bin\java
 
G

Gelöschtes Mitglied 5909

Gast
Auf was ist denn der Glassfish timeout gesetzt? Vielleicht liegt es dadran
 

Andi22

Mitglied
Mittlerweile habe ich herausgefunden, dass es an WS-ReliableMessaging liegt - wenn man das deaktiviert - bekomme ich eine Exception. Allerdings ist die Anforderung es mit WS-ReliableMessaging hinzubekommen - was könnte da die genaue Ursache sein?
 

Andi22

Mitglied
Ich habe in meiner WSDL entsprechende ReliableMessaging Elemente einfach entfernt. Standardmäßig ist ReliableMessaging sowieso nicht aktiviert. Eine Lösung mit ReliableMessaging habe ich bisher aber noch nicht endeckt.
 

Ähnliche Java Themen

Neue Themen


Oben