透过XML入库操作 EsbmMessageProcessor 02

通过XML入库操作 EsbmMessageProcessor 02
public static Map<String, String> getValuefromXpath(Document doc)
    {
        logger.debug("Start get value from esbmessage through Xpath");
        String interfaceName = null;
        String log_sn = null;
      
        Node node = doc.selectSingleNode(SERVICE_NAME_XPATH);
        if (node != null)
        {
            interfaceName = node.getText();
        }
       
        node = doc.selectSingleNode(LOG_SN_XPATH);
        if (node != null)
        {
            log_sn = node.getText();
        }
        if (logger.isDebugEnabled())
        {
            logger.debug("The interface name:" + interfaceName);
            logger.debug("The lon_sn name:" + log_sn);
        }
        // 如果接口名或log_sn为空那么要处理结束
        if ((interfaceName == null) || ("".equals(interfaceName))
                || (log_sn == null) || ("".equals(log_sn)))
        {
            logger.error("please check the message the interfaceName or log_sn can not be bull."
                    + doc.asXML());
            return null;
        }
      
        interfaceName += log_sn;

        // 正常的内容
        Map<Object, Object> interfaceMap = DataCache
                .getinterfaceMap(interfaceName);
        // 命名空间内容
        Map<Object, Object> namespaceMap = DataCache
                .getinterfaceMap(interfaceName + "namesapce");
        // 加密内容
        Map<Object, Object> encryptMap = DataCache
                .getinterfaceMap(interfaceName + "encrypt");

        Map<Object, Object> prefixMap = DataCache.getinterfaceMap(interfaceName
                + "prefix");
        // 如果配置文件为空,该处理结束
        if ((null == interfaceName) || interfaceMap.isEmpty())
        {
            logger.error("Please check the interface name can map to properties file, inteface Name:"
                    + interfaceName + "," + doc.toString());

            return null;
        }
        // 将接口配置文件内容打印出来
        if (logger.isDebugEnabled())
        {
            Iterator<Map.Entry<Object, Object>> iterator = interfaceMap
                    .entrySet().iterator();
            Map.Entry<Object, Object> entry = null;
            while (iterator.hasNext())
            {
                entry = iterator.next();
                logger.debug("Message node mapping to the Database field key is:"
                        + entry.getKey() + " and Xpath :" + entry.getValue());

            }
        }

        // 原始数据加密,有加密的字段,还必顺有加密的算法
        if (encryptMap != null && encryptMap.size() > 0
                && !Tools.getENCRYPT_ALGO().isEmpty())
        {
            encryptDoc(doc, namespaceMap, encryptMap);
        }
        // 获取接口配置文件中的key值
        Map<String, String> propertiesValue = getMatchValue(doc, interfaceMap,
                namespaceMap);
        addPrefix(propertiesValue, prefixMap);

        // duration 是rsp_timestamp-req_timestamp秒差
        // 直接在代码实现存入propertiesValue变量中,直接在代码存入不在properties文件中配置
        String req_timestamp = propertiesValue.get("req_timestamp");
        String rsp_timestamp = propertiesValue.get("rsp_timestamp");