销售轨迹实现

三个类:web

SaleTrackThread   线程类json

private void excute(TrackServiceBean trackBean){
        String method = "doSaveTrack"; // 方法名
        Service service = new Service();
        String RequestXML="";
        try {
            RequestXML = TrackUtil.GenXML(trackBean);
            try {
                Call call = (Call) service.createCall();
                call.setTargetEndpointAddress(webserviceAddress);  
//调用该接口
                call.setOperationName(method);   //调用该方法
                call.setReturnClass(String.class);
                call.addParameter("xmlStr", XMLType.XSD_STRING, ParameterMode.IN);

                try {
                    String data = (String) call.invoke(new Object[] {RequestXML});
                    logger.info("销售轨迹平台返回报文:"+ data );
                } catch (RemoteException e) {
                    logger.error("销售轨迹平台链接不通",e);
                    e.printStackTrace();
                } catch (Exception e) {
                    logger.error("销售轨迹平台调用失败",e);
                    e.printStackTrace();
                }
            } catch (ServiceException e) {
                logger.error("销售轨迹平台调用失败",e);
                e.printStackTrace();
            }          
        } catch (Exception e) {
            e.printStackTrace();
            logger.debug("写入销售轨迹失败,数据为:" + RequestXML);
        }
    }
    
    public void run() {
        try{
            if(trackBean==null){
                logger.info("销售轨迹平台调用报文为空,不调用销售轨迹接口");
            }else{
                excute(trackBean);
            }
        }catch (Exception e) {
            logger.error("销售轨迹平台调用失败",e);
        }
    }ide

工具类:TrackUtil函数

public static void excuteOnlineTrack(String OrderId,String ProcessType, Object RequestObject){
        if(OrderId==null){
            OrderId="";
        }
        if(ProcessType==null){
            ProcessType="";
        }
        if(RequestObject==null){
            RequestObject="";
        }
        logger.debug("excuteOnlineTrack02写入销售轨迹。");
        JsonConfig jsonConfig = new JsonConfig();
        DoubleJsonValueProcessor doubleJsonValueProcessor = new DoubleJsonValueProcessor(2);
        jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);
        jsonConfig.registerJsonValueProcessor(Double.class, doubleJsonValueProcessor);
        JsonDateProcessor jd = new ECSJsonUtils.JsonDateProcessor("yyyy-MM-dd");
        jsonConfig.registerJsonValueProcessor(Date.class, jd);
        TrackServiceBean trackBean = new TrackServiceBean();
        try{    //两个try catch确保不会影响主线程,有问题只会生成一句日志。
            logger.error("用RequestObject生成销售轨迹TrackServiceBean开始。");
            String tempOrderId = OrderId;
            String tempProcessType = ProcessType;
            String tempRequestXml = ECSJsonUtils.convertObject(RequestObject,jsonConfig);
            trackBean.setClientID("EB");
            trackBean.setOrderId(tempOrderId);
            trackBean.setPolicyId("");
            trackBean.setProcessType(tempProcessType);
            if(StringUtils.isNotBlank(tempRequestXml) && StringUtils.isNotEmpty(tempRequestXml)){
                trackBean.setRequestXml(tempRequestXml);
            }else{
                trackBean.setRequestXml("excuteOnlineTrack写入销售轨迹:RequestXml为空");
            }
            trackBean.setResponseXml("");
            trackBean.setRemark("");
            logger.error("用RequestObject生成销售轨迹TrackServiceBean成功。");
        }catch(Exception ex){
            logger.error("用RequestObject生成销售轨迹TrackServiceBean时发生异常,不会写入销售轨迹!",ex);
            return;
        }
        try{  //trackBean 生成实体类bean
            logger.debug("excuteOnlineTrack写入销售轨迹,数据为trackBean:"+trackBean.toString());
            SaleTrackThread tSaleTrackThread =new SaleTrackThread(trackBean);  
            Thread t1=new Thread(tSaleTrackThread); //调用线程,对主线程无影响
            t1.start();
        }catch(Exception ex){
            logger.error("生成销售轨迹接口xml文档时发生异常!",ex);
            return;
        }
    }工具

public static void excuteOnlineTrack(String OrderId,String ProcessType,String RequestXml){spa

   重载函数。。。。线程

debug

实体类:TrackServiceBean日志

public class TrackServiceBean implements Serializable {xml

    private static final long serialVersionUID = 5574793367633922241L;

    private String ClientID;
    private String ProcessType;
    private String OrderId;
    private String PolicyId;
    private String requestXml;
    private String responseXml;
    private String Remark;

。。。。

@Override
    public String toString() {
        return "TrackServiceBean [ClientID=" + ClientID + ", EncryptString="
                + ", ProcessType=" + ProcessType + ", OrderId="
                + OrderId + ", PolicyId=" + PolicyId + ", requestXml="
                + requestXml + ", responseXml=" + responseXml + ", Remark="
                + Remark + "]";
    }

}

相关文章
相关标签/搜索