AXIS2数据解析和封装

cyydjt 2013-07-09

一、解析示例:

public Senddividendstrategy senddividendstrategy(OMElement in) {
        Senddividendstrategy svs = null;
        try {
            svs = EbsServiceImp.checkDataByOMElement(in);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return svs;
    }

    public static Senddividendstrategy checkDataByOMElement(OMElement element) throws AxisFault, Exception {
        Senddividendstrategy s = null;
        if (element != null) {
            Calendar cal = Calendar.getInstance();
            SimpleDateFormat formater = new SimpleDateFormat("yyyy-MM-dd");
            String mDateTime = formater.format(cal.getTime());
            List<Senddividendstrategy> sList = new ArrayList<Senddividendstrategy>();
            Senddividendstrategy svs = null;
            Iterator iteClient = element.getChildElements();
            while (iteClient.hasNext()) {
                OMNode omNodeClient = (OMNode) iteClient.next();
                if (omNodeClient.getType() == 1) {
                    OMElement omeClient = (OMElement) omNodeClient;
                    if (omeClient.getLocalName().toLowerCase().equals("sparams")) {
                        Iterator iteTParam = omeClient.getChildElements();
                        while (iteTParam.hasNext()) {
                            OMNode omNodeTParam = (OMNode) iteTParam.next();
                            if (omNodeTParam.getType() == 1) {
                                OMElement omeTParam = (OMElement) omNodeTParam;
                                if (omeTParam.getLocalName().toLowerCase().equals("sparam")) {
                                    svs = (Senddividendstrategy) BeanUtil.processObject(omeTParam, Senddividendstrategy.class, null, true, new DefaultObjectSupplier());
                                    sList.add(svs);
                                }
                            }
                        }
                    }
                }
            }
            s = senddividendstrategyCal(sList);
        }
        return s;
    }

 二、封装示例:

1、
    /**
     * 测试
     * @param statistic
     * @param userId
     * @return
     */
    public static String sendDataDfzwByOMElement() {
        targetEPR = new EndpointReference("http://192.168.10.227/ebsService/services/ebsService?wsdl");
        // 创建request SOAP包
        OMFactory fac = OMAbstractFactory.getOMFactory();
        // OMNamespace指定此SOAP文档名称空间
        OMNamespace om = fac.createOMNamespace("http://service.eee.shun.com", "client");
        // 创建元素,并指定其在om指代的名称空间中,元素名必须跟services.xml重大operation的name相同
        OMElement method = fac.createOMElement("senddividendstrategy", om);
        OMElement root;
        OMElement svsListOmElement;
        List<Senddividendstrategy> svsList = new ArrayList<Senddividendstrategy>();
        try {
            Senddividendstrategy s = new Senddividendstrategy();
            for (int i = 0; i < 10 ; i++) {
                s.setDividend_date("1");
                s.setCompany_code("2");
                s.setEquity_note_number("3");
                s.setDividend_line_number(Long.valueOf(4));
                s.setAssign_type_code("5");
                s.setAssign_source("6");
                s.setSegment3("7");
               
                s.setAmount(Long.valueOf(8));
                s.setCash_amount(Long.valueOf(9));
                s.setCash_proportion(Long.valueOf(10));
                s.setCash_person_proportion(Long.valueOf(11));
                s.setCapital_source("12");
                s.setCapital_amount(Long.valueOf(13));
                s.setCapital_proportion(Long.valueOf(14));
               
                s.setCapital_person_proportion(Long.valueOf(15));
                s.setEquity_category("16");
                s.setEquity_properties("17");
                s.setReduce_tax_amount(Long.valueOf(18));
                s.setStart_date("19");
               
                s.setManager_type("20");
                s.setProcess_startus("21");
                s.setData_status("22");
                s.setX_msg_data("23");
                s.setX_return_status("24");
               
                svsList.add(s);
            }
            root = fac.createOMElement("root", null);
            svsListOmElement = BeanUtil.getOMElement(new QName("sparams"), svsList.toArray(), new QName("sparam"), false, null);
            root.addChild(svsListOmElement);
            method.addChild(root);
           
            Options options = new Options();
            options.setTo(targetEPR);
            ServiceClient sender = new ServiceClient();
            sender.setOptions(options);
            // 发出request SOAP
            // 同时将得到的远端由senddividendstrategy方法返回的信息保存到result
            // 通过services.xml能准确找到senddividendstrategy方法所在的文件
            sender.sendReceive(method);
            String filePath = "E:\\ebs.xml";
            writeToFile(filePath, method);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }


2、
    //创建response SOAP包
            OMFactory fac = OMAbstractFactory.getOMFactory();
            //OMNamespace指定此SOAP文档名称空间
            OMNamespace omNs = fac.createOMNamespace("http://service.eee.shun.com", "service");
            //创建元素SafetyTrouble返回给客服端的元素,并指定其在omNs指代的名称空间中
            OMElement resp = fac.createOMElement("line-service", omNs);
            OMElement root = fac.createOMElement("root", null);
           
            ReturnOutParameter rop = new ReturnOutParameter();
            List<ReturnOutParameter> ropList = new ArrayList<ReturnOutParameter>();
            OMElement ropListOmElement;
           
            rop.setX_return_status(x_return_status);
            rop.setX_msg_data(x_msg_data);
            ropList.add(rop);
           
            //添加消息信息
            ropListOmElement = BeanUtil.getOMElement(new QName("rparams"), ropList.toArray(), new QName("rparam"), false, null);
            root.addChild(ropListOmElement);
            resp.addChild(root);
           
            return resp;