Merge r1001690 TUSCANY-3690: Improve error handling and fix problems with local WSDL
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1027408 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
ede3069049
commit
48a3901481
3 changed files with 64 additions and 20 deletions
sca-java-1.x/trunk/demos/xml-bigbank/src/main
|
@ -78,7 +78,17 @@ public class AccountServiceImpl implements AccountService {
|
|||
try {
|
||||
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;
|
||||
}
|
||||
|
||||
// restore the previous logging setting
|
||||
} finally {
|
||||
|
@ -87,8 +97,8 @@ public class AccountServiceImpl implements AccountService {
|
|||
|
||||
// if the web service invocation was successful, process the response
|
||||
XMLStreamReader qts = null;
|
||||
if (xml != null && xml.startsWith("<")) {
|
||||
System.out.println(xml);
|
||||
if (xml != null) {
|
||||
System.out.println("Server responded: " + xml);
|
||||
qts = factory.createXMLStreamReader(new StringReader(xml));
|
||||
|
||||
// if the web service isn't responding, continue with the demo using historical data
|
||||
|
|
|
@ -45,8 +45,7 @@
|
|||
</component>
|
||||
|
||||
<reference name="StockQuoteReference" promote="AccountService/stockQuote">
|
||||
<binding.ws wsdlElement="http://bigbank/#wsdl.port(StockQuoteService/StockQuotePort)" />
|
||||
<!--binding.ws wsdlElement="http://www.webserviceX.NET/#wsdl.port(StockQuote/StockQuoteSoap)" /-->
|
||||
<binding.ws wsdlElement="http://www.webserviceX.NET/#wsdl.port(StockQuote/StockQuoteSoap)" />
|
||||
</reference>
|
||||
|
||||
</composite>
|
||||
|
|
|
@ -1,31 +1,66 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<wsdl:definitions name="StockQuoteService" targetNamespace="http://bigbank/" xmlns:tns="http://bigbank/"
|
||||
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:wsx="http://www.webserviceX.NET/" xmlns:SOAP="http://schemas.xmlsoap.org/wsdl/soap/">
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
-->
|
||||
|
||||
<!--
|
||||
Ideally we would obtain the WSDL from the remote server using <wsdl:import location="..."/>, but this
|
||||
causes major problems if the server is down because the unresolved import causes the contribution load
|
||||
to fail. A simple workaround is to use a local WSDL definition that matches the service we are attempting
|
||||
to invoke. This ensures that the contribution can always be loaded. If the service invocation fails at
|
||||
runtime because the server is down, there is code in the demo to catch the exception and use local
|
||||
historical data instead.
|
||||
-->
|
||||
|
||||
<!-- If you're feeling brave, uncomment the following and comment out the local definition below
|
||||
<wsdl:definitions targetNamespace="http://www.webserviceX.NET/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
|
||||
<wsdl:import namespace="http://www.webserviceX.NET/"
|
||||
location="http://www.webservicex.net/stockquote.asmx?wsdl" />
|
||||
</wsdl:definitions>
|
||||
-->
|
||||
|
||||
<!-- This is the local definition for the remote web service -->
|
||||
<wsdl:definitions targetNamespace="http://www.webserviceX.NET/" xmlns:tns="http://www.webserviceX.NET/"
|
||||
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:SOAP="http://schemas.xmlsoap.org/wsdl/soap/">
|
||||
<wsdl:types>
|
||||
<xs:schema attributeFormDefault="qualified" elementFormDefault="unqualified"
|
||||
<xs:schema attributeFormDefault="qualified" elementFormDefault="qualified"
|
||||
targetNamespace="http://www.webserviceX.NET/" xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
||||
<xs:element name="GetQuoteResponse">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element minOccurs="0" name="return" nillable="true" type="xs:string" />
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="GetQuote">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element minOccurs="0" name="GetQuoteResult" nillable="true" type="xs:string" />
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="GetQuote">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element minOccurs="0" name="symbol" nillable="true" type="xs:string" />
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:schema>
|
||||
</wsdl:types>
|
||||
<wsdl:message name="GetQuoteResponse">
|
||||
<wsdl:part name="GetQuoteResponse" element="wsx:GetQuoteResponse" />
|
||||
<wsdl:part name="GetQuoteResponse" element="tns:GetQuoteResponse" />
|
||||
</wsdl:message>
|
||||
<wsdl:message name="GetQuote">
|
||||
<wsdl:part name="GetQuote" element="wsx:GetQuote" />
|
||||
<wsdl:part name="GetQuote" element="tns:GetQuote" />
|
||||
</wsdl:message>
|
||||
<wsdl:portType name="StockQuote">
|
||||
<wsdl:operation name="GetQuote">
|
||||
|
@ -45,8 +80,8 @@
|
|||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
</wsdl:binding>
|
||||
<wsdl:service name="StockQuoteService">
|
||||
<wsdl:port name="StockQuotePort" binding="tns:StockQuoteBinding">
|
||||
<wsdl:service name="StockQuote">
|
||||
<wsdl:port name="StockQuoteSoap" binding="tns:StockQuoteBinding">
|
||||
<SOAP:address location="http://www.webservicex.net/stockquote.asmx" />
|
||||
</wsdl:port>
|
||||
</wsdl:service>
|
||||
|
|
Loading…
Add table
Reference in a new issue