<paymentOp.xml> <operation context="paymentCtx" id="paymentOp" implClass="com.ibm.btt.poc.operation.PaymentOperation"> <refFormat name="csReplyFormat" refId="paymentSecondRecFmt" /> </operation> </paymentOp.xml>
<context id="paymentCtx" type="oper"> <refKColl refId="paymentData"/> </context>
<kColl id="paymentData"> <data id="acctFrom" refType="String"> <param id="isMandatory" value="true" /> </data> <data id="acctTo" refType="String"> <param id="isMandatory" value="true" /> </data> <data id="amount" refType="Amount"> <param id="isMandatory" value="true" /> </data> <data id="pageName" refType="String"></data> <field id="TrxReplyCode" /> </kColl>
<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(); }