Add fault to WSDL
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@759407 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
f9e2d3ce04
commit
4b7b8b26b7
3 changed files with 50 additions and 20 deletions
|
@ -6,24 +6,28 @@
|
|||
* 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.
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package payment;
|
||||
|
||||
import javax.annotation.security.RolesAllowed;
|
||||
import javax.annotation.security.RunAs;
|
||||
|
||||
import org.osoa.sca.annotations.Authentication;
|
||||
import org.osoa.sca.annotations.Property;
|
||||
import org.osoa.sca.annotations.Reference;
|
||||
import org.osoa.sca.annotations.Service;
|
||||
|
||||
import payment.creditcard.AuthorizeFault_Exception;
|
||||
import payment.creditcard.CreditCardDetailsType;
|
||||
import payment.creditcard.CreditCardPayment;
|
||||
import scatours.customer.Customer;
|
||||
|
@ -35,6 +39,8 @@ import scatours.emailgateway.EmailGateway;
|
|||
* The payment implementation
|
||||
*/
|
||||
@Service(Payment.class)
|
||||
@RolesAllowed({"Admin", "Billing"})
|
||||
@RunAs("Billing")
|
||||
public class PaymentImpl implements Payment {
|
||||
|
||||
@Reference
|
||||
|
@ -52,18 +58,23 @@ public class PaymentImpl implements Payment {
|
|||
|
||||
public String makePaymentMember(String customerId, float amount) {
|
||||
Customer customer = null;
|
||||
|
||||
|
||||
try {
|
||||
customer = customerRegistry.getCustomer(customerId);
|
||||
} catch (CustomerNotFoundException ex) {
|
||||
return "Payment failed due to " + ex.getMessage();
|
||||
} catch (Throwable t) {
|
||||
} catch (Throwable t) {
|
||||
return "Payment failed due to system error " + t.getMessage();
|
||||
}
|
||||
|
||||
CreditCardDetailsType ccDetails = customer.getCreditCard();
|
||||
|
||||
String status = creditCardPayment.authorize(ccDetails, amount);
|
||||
String status;
|
||||
try {
|
||||
status = creditCardPayment.authorize(ccDetails, amount);
|
||||
} catch (AuthorizeFault_Exception e) {
|
||||
status = e.getFaultInfo().getErrorCode();
|
||||
}
|
||||
|
||||
StringBuffer body = new StringBuffer();
|
||||
body.append(customer);
|
||||
|
|
|
@ -6,15 +6,15 @@
|
|||
* 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.
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package payment.creditcard;
|
||||
|
@ -29,7 +29,7 @@ import org.osoa.sca.annotations.Service;
|
|||
@RolesAllowed("Admin")
|
||||
public class CreditCardPaymentImpl implements CreditCardPayment {
|
||||
|
||||
public String authorize(CreditCardDetailsType creditCard, float amount) {
|
||||
public String authorize(CreditCardDetailsType creditCard, float amount) throws AuthorizeFault_Exception {
|
||||
if (creditCard != null) {
|
||||
System.out.println("Checking card: name = " + creditCard.getCardOwner().getName()
|
||||
+ " number = "
|
||||
|
@ -38,6 +38,11 @@ public class CreditCardPaymentImpl implements CreditCardPayment {
|
|||
+ amount);
|
||||
} else {
|
||||
System.out.println("Checking card is null");
|
||||
ObjectFactory factory = new ObjectFactory();
|
||||
AuthorizeFault fault = factory.createAuthorizeFault();
|
||||
fault.setErrorCode("001 - Invalid card");
|
||||
AuthorizeFault_Exception ex = new AuthorizeFault_Exception("Invalid card", fault);
|
||||
throw ex;
|
||||
}
|
||||
|
||||
return "OK";
|
||||
|
|
|
@ -7,29 +7,29 @@
|
|||
* 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.
|
||||
* under the License.
|
||||
-->
|
||||
<wsdl:definitions name="CreditCardPayment"
|
||||
<wsdl:definitions name="CreditCardPayment"
|
||||
targetNamespace="http://www.tuscanyscatours.com/CreditCardPayment/"
|
||||
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
|
||||
xmlns:tns="http://www.tuscanyscatours.com/CreditCardPayment/"
|
||||
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
|
||||
xmlns:tns="http://www.tuscanyscatours.com/CreditCardPayment/"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
|
||||
xmlns:bpws="http://schemas.xmlsoap.org/ws/2004/03/business-process/"
|
||||
xmlns:plnk="http://schemas.xmlsoap.org/ws/2004/03/partner-link/">
|
||||
<wsdl:types>
|
||||
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
targetNamespace="http://www.tuscanyscatours.com/CreditCardPayment/"
|
||||
xmlns:tns="http://www.tuscanyscatours.com/CreditCardPayment/">
|
||||
|
||||
|
||||
<xsd:element name="authorize" type="tns:AuthorizeType"/>
|
||||
<xsd:complexType name="AuthorizeType">
|
||||
<xsd:sequence>
|
||||
|
@ -78,6 +78,13 @@
|
|||
<xsd:element name="HomePhone" type="xsd:string" />
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
<xsd:element name="authorizeFault">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="errorCode" type="xsd:string"></xsd:element>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
</wsdl:types>
|
||||
<wsdl:message name="AuthorizeRequest">
|
||||
|
@ -86,10 +93,14 @@
|
|||
<wsdl:message name="AuthorizeResponse">
|
||||
<wsdl:part name="parameters" element="tns:authorizeResponse"></wsdl:part>
|
||||
</wsdl:message>
|
||||
<wsdl:message name="AuthorizeFault">
|
||||
<wsdl:part name="parameters" element="tns:authorizeFault"></wsdl:part>
|
||||
</wsdl:message>
|
||||
<wsdl:portType name="CreditCardPayment">
|
||||
<wsdl:operation name="authorize">
|
||||
<wsdl:input message="tns:AuthorizeRequest"></wsdl:input>
|
||||
<wsdl:output message="tns:AuthorizeResponse"></wsdl:output>
|
||||
<wsdl:fault name="authorizationFailure" message="tns:AuthorizeFault"></wsdl:fault>
|
||||
</wsdl:operation>
|
||||
</wsdl:portType>
|
||||
<wsdl:binding name="CreditCardPaymentBinding" type="tns:CreditCardPayment">
|
||||
|
@ -102,6 +113,9 @@
|
|||
<wsdl:output>
|
||||
<soap:body use="literal" />
|
||||
</wsdl:output>
|
||||
<wsdl:fault name="authorizationFailure">
|
||||
<soap:fault name="authorizationFailure" use="literal"/>
|
||||
</wsdl:fault>
|
||||
</wsdl:operation>
|
||||
</wsdl:binding>
|
||||
<wsdl:service name="CreditCardPaymentService">
|
||||
|
@ -109,8 +123,8 @@
|
|||
<soap:address location="http://localhost:8080/CreditCardPayment" />
|
||||
</wsdl:port>
|
||||
</wsdl:service>
|
||||
|
||||
|
||||
<plnk:partnerLinkType name="CreditCardPaymentLinkType">
|
||||
<plnk:role name="forward" portType="tns:CreditCardPayment"/>
|
||||
</plnk:partnerLinkType>
|
||||
</plnk:partnerLinkType>
|
||||
</wsdl:definitions>
|
Loading…
Reference in a new issue