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:
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
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