• Velocity组装Xml报文


     组装报文代码

    /**
         * 请求XML组装
         * @param bizNo
         * @return
         */
        public String createRequestXml(PolicyApplication app,String xmlPath,String resType) throws Exception {
            String rspXml = "";
            try {
                String userInfo = DeploymentConfig.getProperty("GD_PLAT_USER");//获取平台用户密码
                Properties p = new Properties();
                p.put("input.encoding", "UTF-8");
                p.put("output.encoding", "UTF-8");
                p.put("resource.loader", "srl");
                p.put("srl.resource.loader.class",FlatXMLTemplateLoader.class.getName());
                VelocityEngine veloEngine = new VelocityEngine();
                veloEngine.init(p);
                Template template = veloEngine.getTemplate(xmlPath);
                VelocityContext velocityContext = new VelocityContext();
                velocityContext.put("SEARCH",xmlPath);// 模板路径
                BaseDTO baseDto = new BaseDTO(app);
                velocityContext.put("resType",resType);
                velocityContext.put("userName",userInfo.split("-")[0]);
                velocityContext.put("userPass",userInfo.split("-")[1]);
                velocityContext.put("app",baseDto);
                StringWriter sw = new StringWriter();
                template.merge(velocityContext,sw);
                sw.close();
                rspXml = sw.toString();
            } catch (Exception e) {
                logger.info(e.getMessage());
                e.printStackTrace();
            }
            return rspXml;
        }

     报文模版

    <?xml version="1.0" encoding="UTF-8"?>
    <PACKET type="RESPONSE" version="1.0">
        <HEAD>
            <REQUEST_TYPE>$!resType</REQUEST_TYPE>
            <USER>$!userName</USER>
            <PASSWORD>$!userPass</PASSWORD>
        </HEAD>
        #set($base = $app.getBase())
        #set($insured = $app.getInsured())
        <BASE_PART>
            <QUOTE_NO>$!base.CQteNo</QUOTE_NO>
            <POLICY_CODE>$!insured.CCertfCde</POLICY_CODE>
            <POLICY_NAME>$!insured.CInsuredNme</POLICY_NAME>
            <PRODUCT_NO>001</PRODUCT_NO>
            <PREMIUM_RATE>$!app.getFormatRate($!base.CProdNo,$!base.CTrdCde)</PREMIUM_RATE>
            <TRANS_DATE>$!app.date2Str(null)</TRANS_DATE>
            <PRODUCT_LIST>
                #foreach ($cvrg in $!app.getCoverages())
                    #if((("010002"==$!cvrg.CCvrgNo) || ("010003"==$!cvrg.CCvrgNo) ||  ("010004"==$!cvrg.CCvrgNo)) && $!app.isShenzhen($!cvrg.CResvTxt18))
                    <PRODUCT_COMP>
                        <INDUSTRY_TYPE>$!base.CTrdCde</INDUSTRY_TYPE>
                        <INSURE_CDE>$!app.getAttrNmeBySQL("CCvrgNo",$!cvrg.CCvrgNo)</INSURE_CDE>
                        <LOSS_FREE_RATE>$!app.getFormatDuctRate($!base.NDductRate)</LOSS_FREE_RATE>
                        <LOSS_FREE_AMT>$!base.NDductAmt</LOSS_FREE_AMT>
                        <PREMIUM_RATE>$!app.getFormatRate($!base.CProdNo,$!cvrg.NRate,$!base.CTrdCde)</PREMIUM_RATE>
                    </PRODUCT_COMP>
                    #end
                #end
            </PRODUCT_LIST>
        </BASE_PART>
    </PACKET>
  • 相关阅读:
    前端全链路优化总结
    到底使用字符数组还是字符串常量
    指针的误区
    指针
    函数使用初体验
    C语言函数使用小试牛
    十年研发经验工程师的嵌入式学习书籍大推荐与学习进阶路线
    TCP/IP协议前期的一知半解
    Ubuntu 16.04 LTS安装sogou输入法详解
    1/0信封——数据链路层,ARP及RARP
  • 原文地址:https://www.cnblogs.com/ycyang/p/6880859.html
Copyright © 2020-2023  润新知