<paymentOp.xml> <operation context="paymentCtx" id="paymentOp" implClass="com.ibm.btt.sample.operation.PaymentOperation"> <refFormat name="csReplyFormat" refId="paymentSecondRecFmt" /> </operation> </paymentOp.xml>
<context id="paymentCtx" type="oper"> <refKColl refId="paymentData"/> </context>
<bColl id="paymentData" bean="com.ibm.btt.sample.data.PaymentBean" />
public class PaymentBean { String acctFrom; String acctTo; String pageName; String TrxReplyCode; String amount; double acctToBalance; double acctFromBalance; public String getAmount() { return amount; } public void setAmount(String amount) { this.amount = amount; } public double getAcctToBalance() { return acctToBalance; } public void setAcctToBalance(double acctToBalance) { this.acctToBalance = acctToBalance; } public double getAcctFromBalance() { return acctFromBalance; } public void setAcctFromBalance(double acctFromBalance) { this.acctFromBalance = acctFromBalance; } public String getAcctFrom() { return acctFrom; } public void setAcctFrom(String acctFrom) { this.acctFrom = acctFrom; } public String getAcctTo() { return acctTo; } public void setAcctTo(String acctTo) { this.acctTo = acctTo; } public String getPageName() { return pageName; } public void setPageName(String pageName) { this.pageName = pageName; } public String getTrxReplyCode() { return TrxReplyCode; } public void setTrxReplyCode(String trxReplyCode) { TrxReplyCode = trxReplyCode; }
<fmtDef id="paymentXMLFmt"> <fXML dataName="paymentData"> <fString dataName="acctFrom" /> <fString dataName="acctTo" /> <fString dataName="amount" /> </fXML> </fmtDef> <fmtDef id="transferFirstRecFmt"> <record> </record> </fmtDef>
<fmtDef id="paymentSecondRecFmt"> <record> <fString dataName="TrxReplyCode" /> <delim delimChar="#" /> </record> </fmtDef> <fmtDef id="paymentSecondReqFmt"> <record> <constant value="Tx06" /> <delim delimChar="#" /> <fString dataName="acctFrom" /> <delim delimChar="#" /> <fString dataName="acctTo" /> <delim delimChar="#" /> <fString dataName="amount" /> <delim delimChar="#" /> </record> </fmtDef>
<WSDII id="paymentWS" wsdlURL="http://localhost:9080/BackendEmulatorWeb/wsdl/Payment.wsdl" operation="PaymentOperation"> <parameters> <wsDIIparameter id="cardReq" /> </parameters> </WSDII>
String useWebService="false"; WSDynamicInvoker wsinvoker=null; useWebService=mark.getString("useWebService"); try{ if(useWebService.equals("true")){ System.out.println("useWebService==="+useWebService); wsinvoker=(WSDynamicInvoker) InvokerFactory.getDefaultInvokerFactory().createInvoker("paymentWS"); //Call a web service WebServiceInfo wsinfo= wsinvoker.getWsInfo(); System.out.println("PaymentOperation request context ="+this.getContext().getKeyedCollection()); UserDefineTypeInfo paymentReqType = wsinfo.getUserDefineTypeByName("PaymentReqType"); UserDefineTypeInfo paymentResponseType = wsinfo.getUserDefineTypeByName("PaymentResponseType"); GenericDataObject cardReq = wsinvoker.convertContexDataToGenericDataObject(wsinvoker.getParameters().get("cardReq") , paymentReqType, this.getContext()); Object result = wsinvoker.execute(new Object[]{ cardReq }); System.out.println("PaymentOperation call web service, result="+result); if ( result instanceof GenericDataObject) wsinvoker.convertGenericDataObjectToContext( wsinvoker.getParameters().get("cardReq") , paymentResponseType, (GenericDataObject) result, this.getContext()); // Set the page to display for HTML channel } setValueAt(HtmlConstants.REPLYPAGE, "paymentcomplete.jsp"); setValueAt("errorCode", HtmlException.OK); setValueAt("TrxReplyCode","OK"); setValueAt("outcome","succcess"); System.out.println("set data completed"); }catch(Exception e){ e.printStackTrace(); }