通过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");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值