axis2开发的webservice的客户端生成、webservice的报文封装、解析、webservice客户端的调用


根据wsdlaxis2 生成webservice的客户端,具体做法参照

axis2+MyEclipse 开发webservice 实例 二 使用axis2 生成webservice的客户端  这篇随笔

 <!-- ========报文入参======= -->

<?xml version="1.0" encoding="GBK" standalone="no" ?>

<ROOT>

         <SERVICE_NO type="string">13623453940</SERVICE_NO>

         <MASTER_SERV_ID type="string">1001</MASTER_SERV_ID>

         <REQUEST_INFO>

                   <OPR_INFO>

                            <PROVINCE_GROUP type="string">10010</PROVINCE_GROUP>

                            <OPEN_TIME  type="string">20120301212121</OPEN_TIME>

                            <LOGIN_NO type="string">aa1868</LOGIN_NO>

                            <SERVICE_NO type="string">13623453940</SERVICE_NO>

                            <ACT_ID type="string">201304161360175132</ACT_ID>

                            <CONTACT_ID type="string"></CONTACT_ID>

                            <MEANS_ID type="string">201304161360175139</MEANS_ID>

                            <CUST_ADVINCE type="string"></CUST_ADVINCE>

                            <RECOMMEND_NO type="string"></RECOMMEND_NO>

                            <CHANNEL_TYPE type="string">11</CHANNEL_TYPE>

                            <TO_GROUP_ID type="string"></TO_GROUP_ID>

                            <SERIAL_NO type="string"></SERIAL_NO>

                            <JOIN_TERMI_FLAG type="string">JH111</JOIN_TERMI_FLAG>

                            <TAINFO_LIST>

                                     <TA_INFO>

                                               <PHONE_NO type="string"></PHONE_NO>

                                               <ID_NO type="string"></ID_NO>

                                     </TA_INFO>

                            </TAINFO_LIST>

                   </OPR_INFO>

                   <PARAMS>

                            <A06>

                                     <PRC_INFO_LIST>

                                               <PRC_INFO>

                                                        <PROD_PRCID type="string"></PROD_PRCID>

                                               </PRC_INFO>

                                     </PRC_INFO_LIST>

                            </A06>

                            <B06>

                                     <PRC_INFO_LIST>

                                               <PRC_INFO>

                                                        <PROD_PRCID type="string"></PROD_PRCID>

                                               </PRC_INFO>

                                     </PRC_INFO_LIST>

                                     <SERV_NO type="string"></SERV_NO>

                            </B06>

                            <B02>

                                     <SERV_NO type="string"></SERV_NO>

                            </B02>

                            <B10>

                                     <SERV_NO type="string"></SERV_NO>

                            </B10>

                            <A11>

                                     <RESOURCE_LIST>

                                               <RESOURCE_INFO>

                                                        <RECEIVE_PHONE type="string">13623453940</RECEIVE_PHONE>

                                                        <IMEI_NO type="string">869412018032158</IMEI_NO>

                                                        <COLOR_ID type="string">10000000</COLOR_ID>

                                               </RESOURCE_INFO>

                                     </RESOURCE_LIST>

                            </A11>

                            <A14>

                                     <PHONE_NO type="string"></PHONE_NO>

                            </A14>

                            <A17>

                                     <CONDCLASS_0178 type="string">0987</CONDCLASS_0178>

                            </A17>

                            <A24>

                                     <SCORE_MONEY type="string"></SCORE_MONEY>

                            </A24>

                            <A26>

                                     <IMEI_NO type="string"></IMEI_NO>

                                     <PHONE_NO type="string"></PHONE_NO>

                            </A26>

                            <A04>

                                     <INDEX type="string"></INDEX>

                            </A04>

                   </PARAMS>

         </REQUEST_INFO>

</ROOT>

 

 

<!-- 报文出参: -->

<?xml version="1.0" encoding="GBK" standalone="no" ?>

<ROOT>

<RETURN_CODE type="long">0</RETURN_CODE>   // 1

<RETURN_MSG type="string">ok!</RETURN_MSG>  // 2

<USER_MSG type="string">ok!</USER_MSG>       // 3

<DETAIL_MSG type="string">OK!</DETAIL_MSG>    // 4

<PROMPT_MSG type="string"></PROMPT_MSG>    // 5

当封装报文时,这里1,2,3,4,5部分封装成了一个对象:ResponseHead

<OUT_DATA>

         <ORDER_ID type="string">O1113052800212745</ORDER_ID>

         <CREATE_ACCEPT type="long">101973397749</CREATE_ACCEPT>

         <PASS_FLAG type="string">Y</PASS_FLAG></OUT_DATA>

</ROOT>

 

封装入参报文对象

package com.*.s4035IntCfm;

import java.util.ArrayList;

import java.util.List;

public class S4035IntCfmRequest {

         private String serviceNo;

         private String masterServId;

         private String provinceGroup;

         private String loginNo;

         private String phoneNo;

         private String actId;

         private String meansId;

         private String contactId;

         private String channelType;

         private String custAdvince;

         private String recommendNo;

         private List<TaInfo> taInfoList =new ArrayList<TaInfo>();

         private String toGroupId;

         private String serialNo;

         private String joinTermiFlag;      

         private List<PrcInfo> prcInfoList =new ArrayList<PrcInfo>();

         private List<ResourceInfo>  resourceInfo=new ArrayList<ResourceInfo>();

         private String servNo;

         private String imeiNo;

         private String openTime;

         public String getOpenTime() {

                   return openTime;

         }

         public void setOpenTime(String openTime) {

                   this.openTime = openTime;

         }

         public String getImeiNo() {

                   return imeiNo;

        }

         public void setImeiNo(String imeiNo) {

                   this.imeiNo = imeiNo;

         }

         private String transferSNo;//TRANSFER_SERIALNO

         private String condclass;//CONDCLASS_0178

        private String scoreMoney;

         private String index;

         public String getIndex() {

                   return index;

         }

         public void setIndex(String index) {

                   this.index = index;

         }

         public String getScoreMoney() {

                   return scoreMoney;

         }

         public void setScoreMoney(String scoreMoney) {

                   this.scoreMoney = scoreMoney;

         }

         public String getCondclass() {

                   return condclass;

         }

         public void setCondclass(String condclass) {

                   this.condclass = condclass;

         }

         public String getTransferSNo() {

                   return transferSNo;

         }

         public void setTransferSNo(String transferSNo) {

                   this.transferSNo = transferSNo;

         }

         public String getServNo() {

                   return servNo;

         }

         public void setServNo(String servNo) {

                   this.servNo = servNo;

         }

         public List<PrcInfo> getPrcInfoList() {

                   return prcInfoList;

         }

         public void setPrcInfoList(List<PrcInfo> prcInfoList) {

                   this.prcInfoList = prcInfoList;

         }

         public List<ResourceInfo> getResourceInfo() {

                   return resourceInfo;

         }

         public void setResourceInfo(List<ResourceInfo> resourceInfo) {

                   this.resourceInfo = resourceInfo;

         }

         public String getServiceNo() {

                   return serviceNo;

         }

         public void setServiceNo(String serviceNo) {

                   this.serviceNo = serviceNo;

         }

         public String getMasterServId() {

                   return masterServId;

         }

         public void setMasterServId(String masterServId) {

                   this.masterServId = masterServId;

         }

         public String getProvinceGroup() {

                   return provinceGroup;

         }

         public void setProvinceGroup(String provinceGroup) {

                   this.provinceGroup = provinceGroup;

         }

         public String getLoginNo() {

                   return loginNo;

         }

         public void setLoginNo(String loginNo) {

                   this.loginNo = loginNo;

         }

         public String getPhoneNo() {

                   return phoneNo;

         }

         public void setPhoneNo(String phoneNo) {

                   this.phoneNo = phoneNo;

         }

         public String getActId() {

                   return actId;

         }

         public void setActId(String actId) {

                   this.actId = actId;

         }

         public String getMeansId() {

                   return meansId;

         }

         public void setMeansId(String meansId) {

                   this.meansId = meansId;

         }

         public String getContactId() {

                   return contactId;

         }

         public void setContactId(String contactId) {

                   this.contactId = contactId;

         }

         public String getChannelType() {

                   return channelType;

         }

         public void setChannelType(String channelType) {

                   this.channelType = channelType;

         }

         public String getCustAdvince() {

                   return custAdvince;

         }

         public void setCustAdvince(String custAdvince) {

                   this.custAdvince = custAdvince;

         }

         public String getRecommendNo() {

                   return recommendNo;

         }

         public void setRecommendNo(String recommendNo) {

                   this.recommendNo = recommendNo;

         }

         public List<TaInfo> getTaInfoList() {

                   return taInfoList;

         }

         public void setTaInfoList(List<TaInfo> taInfoList) {

                   this.taInfoList = taInfoList;

         }

         public String getToGroupId() {

                   return toGroupId;

         }

         public void setToGroupId(String toGroupId) {

                   this.toGroupId = toGroupId;

         }

         public String getSerialNo() {

                   return serialNo;

         }

         public void setSerialNo(String serialNo) {

                   this.serialNo = serialNo;

         }

         public String getJoinTermiFlag() {

                   return joinTermiFlag;

         }

         public void setJoinTermiFlag(String joinTermiFlag) {

                   this.joinTermiFlag = joinTermiFlag;

         }

}

 

 

Request对象中引用类型属性TaInfo

package com.*.s4035IntCfm;

public class TaInfo {

    private String phoneNo;//可空

    private String idNo;//可空

    public String getPhoneNo() {

       return phoneNo;

    }

    public void setPhoneNo(String phoneNo) {

       this.phoneNo = phoneNo;

    }

    public String getIdNo() {

       return idNo;

    }

    public void setIdNo(String idNo) {

       this.idNo = idNo;

    }

}

 

Request对象中引用类型属性PrcInfo

package com.*.s4035IntCfm;

public class PrcInfo {

    private String prodPrcid;//给用户订购的资费,可空

    public String getProdPrcid() {

       return prodPrcid;

    }

    public void setProdPrcid(String prodPrcid) {

       this.prodPrcid = prodPrcid;

    }

}

Request对象中引用类型属性ResourceInfo

package com.*.s4035IntCfm;

public class ResourceInfo {

    private String receivePhone;

    private String imeiNo;

    private String colorId;

    public String getReceivePhone() {

       return receivePhone;

    }

    public void setReceivePhone(String receivePhone) {

       this.receivePhone = receivePhone;

    }

    public String getImeiNo() {

       return imeiNo;

    }

    public void setImeiNo(String imeiNo) {

       this.imeiNo = imeiNo;

    }

    public String getColorId() {

       return colorId;

    }

    public void setColorId(String colorId) {

       this.colorId = colorId;

    }

}

出参报文的封装对象的父类

package com.*;

public class ResponseHead {

    private String returnCode; 

    private String returnMsg;  

    private String userMsg;

    private String detailMsg;  

    private String promptMsg;

    public String getReturnCode() {

       return returnCode;

    }

    public void setReturnCode(String returnCode) {

       this.returnCode = returnCode;

    }

    public String getReturnMsg() {

       return returnMsg;

    }

    public void setReturnMsg(String returnMsg) {

       this.returnMsg = returnMsg;

    }

    public String getUserMsg() {

       return userMsg;

    }

    public void setUserMsg(String userMsg) {

       this.userMsg = userMsg;

    }

    public String getDetailMsg() {

       return detailMsg;

    }

    public void setDetailMsg(String detailMsg) {

       this.detailMsg = detailMsg;

    }

    public String getPromptMsg() {

       return promptMsg;

    }

    public void setPromptMsg(String promptMsg) {

       this.promptMsg = promptMsg;

    }

}

把出参报文为封装response对象,此处继承一个自定义的根据出参报文封装的父类

package com.*.s4035IntCfm;

 

import com.*.ResponseHead;

public class S4035IntCfmResponse extends ResponseHead{

    private String orderId;

    private String createAccept;

    private String passFlag;

    public String getOrderId() {

       return orderId;

    }

    public void setOrderId(String orderId) {

       this.orderId = orderId;

    }

    public String getCreateAccept() {

       return createAccept;

    }

    public void setCreateAccept(String createAccept) {

       this.createAccept = createAccept;

    }

    public String getPassFlag() {

       return passFlag;

    }

    public void setPassFlag(String passFlag) {

       this.passFlag = passFlag;

    }

}

 

S4035IntCfmRequest对象装换成入参报文

public static String parseS4035IntCfmRequest2XML(S4035IntCfmRequest request){

              String xml=null;

              StringBuffer sb = new StringBuffer();

              sb.append("<?xml version=\"1.0\" encoding=\"GBK\" standalone=\"no\" ?>").append("\n");

              sb.append("<ROOT>").append("\n");

               sb.append("<SERVICE_NO type=\"string\">"+request.getServiceNo()+"</SERVICE_NO>").append("\n");

               sb.append("<MASTER_SERV_ID type=\"string\">"+request.getMasterServId()+"</MASTER_SERV_ID>").append("\n");

               sb.append("<REQUEST_INFO>").append("\n");

               sb.append("<OPR_INFO>").append("\n");

               sb.append("<PROVINCE_GROUP type=\"string\">"+request.getProvinceGroup()+"</PROVINCE_GROUP>").append("\n");

               sb.append("<OPEN_TIME  type=\"string\">"+request.getOpenTime()+"</OPEN_TIME>").append("\n");

               sb.append("<LOGIN_NO type=\"string\">"+request.getLoginNo()+"</LOGIN_NO>").append("\n");

              // sb.append("<PHONE_NO type=\"string\">"+request.getPhoneNo()+"</PHONE_NO>").append("\n");

               sb.append("<SERVICE_NO type=\"string\">"+request.getServiceNo()+"</SERVICE_NO>").append("\n");

               sb.append("<ACT_ID type=\"string\">"+request.getActId()+"</ACT_ID>").append("\n");

               if(request.getContactId()==null){

                      sb.append("<CONTACT_ID type=\"string\"></CONTACT_ID>").append("\n");

               }else{

                      sb.append("<CONTACT_ID type=\"string\">"+request.getContactId()+"</CONTACT_ID>").append("\n");

               }

               sb.append("<MEANS_ID type=\"string\">"+request.getMeansId()+"</MEANS_ID>").append("\n");

               if(request.getCustAdvince()==null){

                      sb.append("<CUST_ADVINCE type=\"string\"></CUST_ADVINCE>").append("\n");

               }else{

                      sb.append("<CUST_ADVINCE type=\"string\">"+request.getCustAdvince()+"</CUST_ADVINCE>").append("\n");

               }

               if(request.getRecommendNo()==null){

                      sb.append("<RECOMMEND_NO type=\"string\"></RECOMMEND_NO>").append("\n");

               }else{

                      sb.append("<RECOMMEND_NO type=\"string\">"+request.getRecommendNo()+"</RECOMMEND_NO>").append("\n");

               }

               sb.append("<CHANNEL_TYPE type=\"string\">"+request.getChannelType()+"</CHANNEL_TYPE>").append("\n");

               if(request.getToGroupId()==null){

                      sb.append("<TO_GROUP_ID type=\"string\"></TO_GROUP_ID>").append("\n");

               }else{

                      sb.append("<TO_GROUP_ID type=\"string\">"+request.getToGroupId()+"</TO_GROUP_ID>").append("\n");

               }

               if(request.getSerialNo()==null){

                      sb.append("<SERIAL_NO type=\"string\"></SERIAL_NO>").append("\n");

               }else{

                      sb.append("<SERIAL_NO type=\"string\">"+request.getSerialNo()+"</SERIAL_NO>").append("\n");

               }

             

               if(request.getJoinTermiFlag()==null){

                      sb.append("<JOIN_TERMI_FLAG type=\"string\"></JOIN_TERMI_FLAG>").append("\n");

               }else{

                      sb.append("<JOIN_TERMI_FLAG type=\"string\">"+request.getJoinTermiFlag()+"</JOIN_TERMI_FLAG>").append("\n");

               }

               sb.append("<TAINFO_LIST>").append("\n");

               if(request.getTaInfoList()!=null&&request.getTaInfoList().size()>0){

                      String phoneNo=null;

                      String idNo=null;

                      for(int i=0;i<request.getTaInfoList().size();i++){

                             TaInfo taInfo=request.getTaInfoList().get(i);

                             sb.append("<TA_INFO>").append("\n");

                             phoneNo=taInfo.getPhoneNo()!=null?taInfo.getPhoneNo():"";

                             idNo=taInfo.getIdNo()!=null?taInfo.getIdNo():"";      

                             sb.append("<PHONE_NO type=\"string\">"+phoneNo+"</PHONE_NO>").append("\n");

                             sb.append("<ID_NO type=\"string\">"+idNo+"</ID_NO>").append("\n");  

                             sb.append("</TA_INFO>").append("\n");   

                      }    

               }else{

                      sb.append("<TA_INFO>").append("\n");

                      sb.append("<PHONE_NO type=\"string\"></PHONE_NO>").append("\n");

                      sb.append("<ID_NO type=\"string\"></ID_NO>").append("\n");

                      sb.append("</TA_INFO>").append("\n");

               }

               sb.append("</TAINFO_LIST>").append("\n");

               

               sb.append("</OPR_INFO>").append("\n");

               sb.append("<PARAMS>").append("\n");

               sb.append("<A06>").append("\n");

               sb.append("<PRC_INFO_LIST>").append("\n");

               if(request.getPrcInfoList()!=null&&request.getPrcInfoList().size()>0){

                      String prodPrcId=null;

                      for(int i=0;i<request.getPrcInfoList().size();i++){

                             PrcInfo prcInfo=request.getPrcInfoList().get(i);

                             sb.append("<PRC_INFO>").append("\n");

                             prodPrcId=prcInfo.getProdPrcid()!=null?prcInfo.getProdPrcid():"";

                             sb.append("<PROD_PRCID type=\"string\">"+prodPrcId+"</PROD_PRCID>").append("\n");

                             sb.append("</PRC_INFO>").append("\n");

                      }

               }else{

                      sb.append("<PRC_INFO>").append("\n");

                      sb.append("<PROD_PRCID type=\"string\"></PROD_PRCID>").append("\n");

                      sb.append("</PRC_INFO>").append("\n");

               }

               sb.append("</PRC_INFO_LIST>").append("\n");

               sb.append("</A06>").append("\n");

               sb.append("<B06>").append("\n");

               sb.append("<PRC_INFO_LIST>").append("\n");

               if(request.getPrcInfoList()!=null&&request.getPrcInfoList().size()>0){

                      String prodPrcId=null;

                      for(int i=0;i<request.getPrcInfoList().size();i++){

                             PrcInfo prcInfo=request.getPrcInfoList().get(i);

                             sb.append("<PRC_INFO>").append("\n");

                             prodPrcId=prcInfo.getProdPrcid()!=null?prcInfo.getProdPrcid():"";

                             sb.append("<PROD_PRCID type=\"string\">"+prodPrcId+"</PROD_PRCID>").append("\n");

                             sb.append("</PRC_INFO>").append("\n");

                      }

               }else{

                      sb.append("<PRC_INFO>").append("\n");

                      sb.append("<PROD_PRCID type=\"string\"></PROD_PRCID>").append("\n");

                      sb.append("</PRC_INFO>").append("\n");

               }

               sb.append("</PRC_INFO_LIST>").append("\n");

               if(request.getServNo()==null){

                            sb.append("<SERV_NO type=\"string\"></SERV_NO>").append("\n");

                     }else{

                            sb.append("<SERV_NO type=\"string\">"+request.getServNo()+"</SERV_NO>").append("\n");

                     }

               sb.append("</B06>").append("\n");

               

               sb.append("<B02>").append("\n");

              if(request.getServNo()==null){

                     sb.append("<SERV_NO type=\"string\"></SERV_NO>").append("\n");

              }else{

                     sb.append("<SERV_NO type=\"string\">"+request.getServNo()+"</SERV_NO>").append("\n");

              }

               sb.append("</B02>").append("\n");  

               sb.append("<B10>").append("\n");

              if(request.getServNo()==null){

                     sb.append("<SERV_NO type=\"string\"></SERV_NO>").append("\n");

              }else{

                     sb.append("<SERV_NO type=\"string\">"+request.getServNo()+"</SERV_NO>").append("\n");

              }

               sb.append("</B10>").append("\n");           

               sb.append("<A11>").append("\n");                    

               sb.append("<RESOURCE_LIST>").append("\n");

               if(request.getResourceInfo()!=null&&request.getResourceInfo().size()>0){

                      String recPhone=null;

                      String imeiNo=null;

                      String colorId=null;

                      for(int i=0;i<request.getResourceInfo().size();i++){

                             ResourceInfo resourceInfo=request.getResourceInfo().get(i);

                             sb.append("<RESOURCE_INFO>").append("\n");

                             recPhone=resourceInfo.getReceivePhone()!=null?resourceInfo.getReceivePhone():"";

                             imeiNo=resourceInfo.getImeiNo()!=null?resourceInfo.getImeiNo():"";

                             colorId=resourceInfo.getColorId()!=null?resourceInfo.getColorId():"";

                             sb.append("<RECEIVE_PHONE type=\"string\">"+recPhone+"</RECEIVE_PHONE>").append("\n");

                             sb.append("<IMEI_NO type=\"string\">"+imeiNo+"</IMEI_NO>").append("\n");

                             sb.append("<COLOR_ID type=\"string\">"+colorId+"</COLOR_ID>").append("\n");

                             sb.append("</RESOURCE_INFO>").append("\n");

                      }

               }else{

                      sb.append("<RESOURCE_INFO>").append("\n");

                      sb.append("<RECEIVE_PHONE type=\"string\"></RECEIVE_PHONE>").append("\n");

                      sb.append("<IMEI_NO type=\"string\"></IMEI_NO>").append("\n");

                      sb.append("<COLOR_ID type=\"string\"></COLOR_ID>").append("\n");

                      

                      sb.append("</RESOURCE_INFO>").append("\n");                      

               }               

               sb.append("</RESOURCE_LIST>").append("\n");

               sb.append("</A11>").append("\n");

               sb.append("<A14>").append("\n");

              if(request.getPhoneNo()==null){

                     sb.append("<PHONE_NO type=\"string\"></PHONE_NO>").append("\n");

              }else{

                     sb.append("<PHONE_NO type=\"string\">"+request.getPhoneNo()+"</PHONE_NO>").append("\n");

              }

               sb.append("</A14>").append("\n");      

               sb.append("<A17>").append("\n");

              if(request.getCondclass()==null){

                     sb.append("<CONDCLASS_0178 type=\"string\"></CONDCLASS_0178>").append("\n");

              }else{

                     sb.append("<CONDCLASS_0178 type=\"string\">"+request.getCondclass()+"</CONDCLASS_0178>").append("\n");

              }

               sb.append("</A17>").append("\n");               

               sb.append("<A24>").append("\n");

              if(request.getScoreMoney()==null){

                     sb.append("<SCORE_MONEY type=\"string\"></SCORE_MONEY>").append("\n");

              }else{

                     sb.append("<SCORE_MONEY type=\"string\">"+request.getScoreMoney()+"</SCORE_MONEY>").append("\n");

              }

               sb.append("</A24>").append("\n");

               sb.append("<A26>").append("\n");

              if(request.getImeiNo()==null){

                     sb.append("<IMEI_NO type=\"string\"></IMEI_NO>").append("\n");

              }else{

                     sb.append("<IMEI_NO type=\"string\">"+request.getImeiNo()+"</IMEI_NO>").append("\n");

              }

              if(request.getPhoneNo()==null){

                     sb.append("<PHONE_NO type=\"string\"></PHONE_NO>").append("\n");

              }else{

                     sb.append("<PHONE_NO type=\"string\">"+request.getPhoneNo()+"</PHONE_NO>").append("\n");

              }          

               sb.append("</A26>").append("\n");              

               sb.append("<A04>").append("\n");

              if(request.getIndex()==null){

                     sb.append("<INDEX type=\"string\"></INDEX>").append("\n");

              }else{

                     sb.append("<INDEX type=\"string\">"+request.getScoreMoney()+"</INDEX>").append("\n");

              }

               sb.append("</A04>").append("\n");

               sb.append("</PARAMS>").append("\n");

               sb.append("</REQUEST_INFO>").append("\n");

              sb.append("</ROOT>").append("\n");

              xml = sb.toString();

              return xml;

       }

把调用接口获得的出参报文转换成自己封装的S4035IntCfmResponse对象

public static S4035IntCfmResponse parseXML2S4035IntCfmResponse(String xml) throws DocumentException{

         Document document =DocumentHelper.parseText(xml);

         S4035IntCfmResponse response =new S4035IntCfmResponse();

         Element root = document.getRootElement();

         String DETAIL_MSG = root.elementTextTrim("DETAIL_MSG");

         String PROMPT_MSG = root.elementTextTrim("PROMPT_MSG");

         String RETURN_CODE = root.elementTextTrim("RETURN_CODE");

         if(RETURN_CODE!=null&&(RETURN_CODE.equals("0")||RETURN_CODE.equals("0"))){

              Element OUT_DATA = root.element("OUT_DATA");

              String ORDER_ID = OUT_DATA.elementTextTrim("ORDER_ID");

              String CREATE_ACCEPT = OUT_DATA.elementTextTrim("CREATE_ACCEPT");

              String PASS_FLAG = OUT_DATA.elementTextTrim("PASS_FLAG");

              response.setOrderId(ORDER_ID);

              response.setCreateAccept(CREATE_ACCEPT);

              response.setPassFlag(PASS_FLAG);

         }

         response.setDetailMsg(DETAIL_MSG);

         response.setPromptMsg(PROMPT_MSG);

         response.setReturnCode(RETURN_CODE);

         return response;

     }

service层调用webservice接口并把入参和出参报文记录到数据库

public S4035IntCfmResponse S4035IntCfm(S4035IntCfmRequest request,String url) {

         S4035IntCfmResponse response = null;

         String xml = MyParseXML.parseS4035IntCfmRequest2XML(request);

         System.out.println(xml);

         log.info("========入参=======" + xml);

         try {

              S4035IntCfmStub stub = new S4035IntCfmStub(url);

              S4035IntCfmStub.CallService call = new S4035IntCfmStub.CallService();

              call.setPin(xml);

              S4035IntCfmStub.CallServiceResponse response2 = stub.callService(call);

              String xml1 = "";

              xml1 = response2.get_return();

              System.out.println(xml1);

              log.info("========出参=======" + xml1);

              // 记录入参报文和出参报文

              TOperationLogDTO oper = new TOperationLogDTO();

              oper.setOperateTime(new Date());

              oper.setOperateUser("商城 ");

              oper.setOperateDesc("入参:" + xml + "\n出参:" + xml1);

              oper.setOperateAction("自主开通合约");

              oper.setOperateObjectId(request.getServiceNo());

              oper.setOperateObjectReason("");

              oper.setOperateName(request.getPhoneNo());

              //底层通过this.getHibernateTemplate().save(dto);保存到数据中

              this.operationLogManagerImpl.save(oper);

              response = MyParseXML.parseXML2S4035IntCfmResponse(xml);

         } catch (Exception e) {

              e.printStackTrace();

         }

         return response;

     }

 这样在Action层,传入指定的参数,就可调用S4035IntCfm(S4035IntCfmRequest request,String url)方法了,

并且可以通过调用接口的返回值S4035IntCfmResponse进行判断处理

 保存入参和出参时涉及到java类和相关文件

import org.apache.commons.lang.builder.EqualsBuilder;

import org.apache.commons.lang.builder.HashCodeBuilder;

/**

 * <ul>

 * <li> <b>目的:</b> <br />

 * <p>

 * 表T_OPERATION_LOG的映射类,

*/

public class TOperationLogDTO extends AbstractTOperationLogDTO{

     private static final long serialVersionUID = 8980322235903658767L;

     public  TOperationLogDTO()

     {

         super();

     }

     public  TOperationLogDTO(java.lang.String logId)

     {

         super(logId);

     }

     public boolean equals(Object other)

     {        if ( !(other instanceof TOperationLogDTO) )

              return false;

         TOperationLogDTO castOther = (TOperationLogDTO) other;

         return new EqualsBuilder().append(this.getLogId(), castOther.getLogId()).isEquals();

     }

     public int hashCode()

     {

         return new HashCodeBuilder().append(getLogId()).toHashCode();

     }

     @Override

     public String toString() {

         return super.toString();

     }

}

import com.*.common.model.util.PageObject;

/**

 * <ul>

 * <li><b>目的:</b> <br />

 * <p>

 * 实体对象,请勿做客户化操作, 对应表:T_OPERATION_LOG 商城对象操作履历表

  */

public abstract class AbstractTOperationLogDTO extends PageObject{

     private static final long serialVersionUID = -3633835505537085014L

     // 表ID

     private java.lang.String logId;

     // 操作时间

     private java.util.Date operateTime;

     //操作查询结束时间

     private java.util.Date operateEndTime;

     // 操作人

     private java.lang.String operateUser; 

     // 操作备注

     private java.lang.String operateDesc;

     // 操作编号

     private java.lang.String operateAction;

     // 操作状态

     private java.lang.Long operateState;

     // 操作对象前状态

     private java.lang.String operateObjectStatus;

     // 操作对象ID

     private java.lang.String operateObjectId;

     // 操作原因

     private java.lang.String operateObjectReason;

     // 操作对象类型

     private java.lang.String operateObjectType;

     //操作人名字

     private java.lang.String operateName; 

     public AbstractTOperationLogDTO() {

     }

     public AbstractTOperationLogDTO(java.lang.String logId) {

         this.setLogId(logId);

     }

     /**

      * get表ID

      *

      * @return 表ID

      */

     public java.lang.String getLogId() {

         return logId;

     }

     /**

      * set表ID

      *

      * @param 表ID

      * @return void

      */

     public void setLogId(java.lang.String logId) {

         this.logId = logId;

     }

     /**

      * get操作时间

      *

      * @return 操作时间

      */

     public java.util.Date getOperateTime() {

         return operateTime;

     }

     /**

      * set操作时间

      *

      * @param 操作时间

      * @return void

      */

     public void setOperateTime(java.util.Date operateTime) {

         this.operateTime = operateTime;

     }

     /**

      * get操作人

      *

      * @return 操作人

      */

     public java.lang.String getOperateUser() {

         return operateUser;

     }

     /**

      * set操作人

      *

      * @param 操作人

      * @return void

      */

     public void setOperateUser(java.lang.String operateUser) {

         this.operateUser = operateUser;

     }

     /**

      * get操作备注

      *

      * @return 操作备注

      */

     public java.lang.String getOperateDesc() {

         return operateDesc;

     }

 

     /**

      * set操作备注

      *

      * @param 操作备注

      * @return void

      */

     public void setOperateDesc(java.lang.String operateDesc) {

         this.operateDesc = operateDesc;

     }

 

     /**

      * get操作编号

      *

      * @return 操作编号

      */

     public java.lang.String getOperateAction() {

         return operateAction;

     }

 

     /**

      * set操作编号

      *

      * @param 操作编号

      * @return void

      */

     public void setOperateAction(java.lang.String operateAction) {

         this.operateAction = operateAction;

     }

 

     /**

      * get操作状态

      *

      * @return 操作状态

      */

     public java.lang.Long getOperateState() {

         return operateState;

     }

 

     /**

      * set操作状态

      *

      * @param 操作状态

      * @return void

      */

     public void setOperateState(java.lang.Long operateState) {

         this.operateState = operateState;

     }

 

     /**

      * get操作对象前状态

      *

      * @return 操作对象前状态

      */

     public java.lang.String getOperateObjectStatus() {

         return operateObjectStatus;

     }

 

     /**

      * set操作对象前状态

      *

      * @param 操作对象前状态

      * @return void

      */

     public void setOperateObjectStatus(java.lang.String operateObjectStatus) {

         this.operateObjectStatus = operateObjectStatus;

     }

 

     /**

      * get操作对象ID

      *

      * @return 操作对象ID

      */

     public java.lang.String getOperateObjectId() {

         return operateObjectId;

     }

 

     /**

      * set操作对象ID

      *

      * @param 操作对象ID

      * @return void

      */

     public void setOperateObjectId(java.lang.String operateObjectId) {

         this.operateObjectId = operateObjectId;

     }

 

     /**

      * get操作原因

      *

      * @return 操作原因

      */

     public java.lang.String getOperateObjectReason() {

         return operateObjectReason;

     }

 

     /**

      * set操作原因

      *

      * @param 操作原因

      * @return void

      */

     public void setOperateObjectReason(java.lang.String operateObjectReason) {

         this.operateObjectReason = operateObjectReason;

     }

 

     /**

      * get操作对象类型

      *

      * @return 操作对象类型

      */

     public java.lang.String getOperateObjectType() {

         return operateObjectType;

     }

 

     /**

      * set操作对象类型

      *

      * @param 操作对象类型

      * @return void

      */

     public void setOperateObjectType(java.lang.String operateObjectType) {

         this.operateObjectType = operateObjectType;

     }

 

     public java.lang.String getOperateName() {

         return operateName;

     }

 

     public void setOperateName(java.lang.String operateName) {

         this.operateName = operateName;

     }

 

     public java.util.Date getOperateEndTime() {

         return operateEndTime;

     }

 

     public void setOperateEndTime(java.util.Date operateEndTime) {

         this.operateEndTime = operateEndTime;

     }

 

     @Override

     public String toString() {

         return "AbstractTOperationLogDTO [logId=" + logId + ", operateAction="

                   + operateAction + ", operateDesc=" + operateDesc

                   + ", operateEndTime=" + operateEndTime + ", operateName="

                   + operateName + ", operateObjectId=" + operateObjectId

                   + ", operateObjectReason=" + operateObjectReason

                   + ", operateObjectStatus=" + operateObjectStatus

                   + ", operateObjectType=" + operateObjectType

                   + ", operateState=" + operateState + ", operateTime="

                   + operateTime + ", operateUser=" + operateUser + "]";

     } 

}

<?xml version="1.0" encoding="GBK"?>

<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"

"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> 

<hibernate-mapping>

    <class  name="com.*.shopservice.pubunit.model.dto.TOperationLogDTO"  table="T_OPERATION_LOG" >

        <comment>对象操作履历表</comment>

        <id name="logId"  type="java.lang.String" >

            <column  name="LOG_ID"  length="32"  />

            <generator class="uuid.hex" />

        </id>

        <property  name="operateAction"  type="java.lang.String" >

            <column  name="OPERATE_ACTION"  length="100" >

                <comment>操作编号</comment>

            </column>

        </property>

        <property  name="operateObjectId"  type="java.lang.String" >

            <column  name="OPERATE_OBJECT_ID"  length="100" >

                <comment>操作对象ID</comment>

            </column>

        </property>

        <property  name="operateObjectStatus"  type="java.lang.String" >

            <column  name="OPERATE_OBJECT_STATUS"  length="100" >

                <comment>操作对象前状态</comment>

            </column>

        </property>

        <property  name="operateObjectReason"  type="java.lang.String" >

            <column  name="OPERATE_OBJECT_REASON"  length="1200" >

                <comment>操作原因</comment>

            </column>

        </property>

        <property  name="operateObjectType"  type="java.lang.String" >

            <column  name="OPERATE_OBJECT_TYPE"  length="100" >

                <comment>操作对象类型</comment>

            </column>

        </property>

        <property  name="operateState"  type="java.lang.Long" >

            <column  name="OPERATE_STATE"  length="8" >

                <comment>操作状态</comment>

            </column>

        </property> 

        <property  name="operateDesc"  type="java.lang.String" >

            <column  name="OPERATE_DESC"  length="1500" >

                <comment>操作备注</comment>

            </column>

        </property>

        <property  name="operateUser"  type="java.lang.String" update="false">

            <column  name="OPERATE_USER"  length="32" >

                <comment>操作人</comment>

            </column>

        </property>

        <property  name="operateTime"  type="java.util.Date" update="false">

            <column  name="OPERATE_TIME" >

                <comment>操作时间</comment>

            </column>

        </property>

        <property  name="operateName"  type="java.lang.String" update="false">

            <column  name="OPERATE_NAME"  length="128" >

                <comment>操作人姓名</comment>

            </column>

        </property>

    </class>

</hibernate-mapping>

建表语句:

create table T_OPERATION_LOG
(
  LOG_ID                VARCHAR2(32) not null,
  OPERATE_TIME          DATE,
  OPERATE_USER          VARCHAR2(32),
  OPERATE_DESC          VARCHAR2(3000),
  OPERATE_STATE         NUMBER(8),
  OPERATE_ACTION        VARCHAR2(100),
  OPERATE_OBJECT_ID     VARCHAR2(100),
  OPERATE_OBJECT_STATUS VARCHAR2(100),
  OPERATE_OBJECT_TYPE   VARCHAR2(100),
  OPERATE_OBJECT_REASON VARCHAR2(1200),
  OPERATE_NAME          VARCHAR2(128)
)


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM