Merge r1003145 Add timeout for stock quote service invocation and improve handling of connectivity errors
git-svn-id: https://svn.apache.org/repos/asf/tuscany/sca-java-1.x/trunk@1027517 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/demos/xml-bigbank/src/main/java/bigbank/AccountServiceImpl.java b/demos/xml-bigbank/src/main/java/bigbank/AccountServiceImpl.java
index c2d0e8a..2420c4e 100644
--- a/demos/xml-bigbank/src/main/java/bigbank/AccountServiceImpl.java
+++ b/demos/xml-bigbank/src/main/java/bigbank/AccountServiceImpl.java
@@ -28,6 +28,7 @@
import org.apache.log4j.Level;
import org.apache.log4j.LogManager;
import org.apache.log4j.spi.LoggerRepository;
+import org.apache.tuscany.sca.binding.ws.axis2.Axis2BindingInvoker;
import org.osoa.sca.ServiceRuntimeException;
import org.osoa.sca.annotations.Property;
import org.osoa.sca.annotations.Reference;
@@ -76,19 +77,17 @@
// first try to get a live stock quote from the web service
String xml = null;
try {
+ // set a small timeout value in case the server doesn't respond
+ Axis2BindingInvoker.GLOBAL_AXIS_TIMEOUT = 8000L;
+
OMElement quotes = stockQuote.GetQuote(request);
xml = quotes.getText();
if (!xml.startsWith("<")) {
System.out.println("Server responded: " + xml);
throw new IllegalStateException("Unexpected response from server");
}
- } catch (Exception e) {
- if (e.getMessage().contains("Transport error: 503")) {
- // server is down, use local historical data
- } else {
- // report any other errors
- throw e;
- }
+ } catch (ServiceRuntimeException e) {
+ // server isn't available, use local historical data
// restore the previous logging setting
} finally {