Groovy XmlSlurper 的线程安全问题

项目里用 Groovy 做 XML 解析。在做并发测试的时候发现 Groovy XmlSlurper 存在一个线程安全的问题。(一段时间前解决的问题,日志被删,不能贴出具体异常了)。

 

存在问题的写法是

XmlSlurper xmlSlurper = new XmlSlurper()

 

很简单,就是 new 一个就行了。但是在并发环境下会存在问题,原因是 XmlSlurper 获取 SaxParser 的问题。异常信息是这么写的,具体的原因由于没有细看 XmlSlurper 的源码,所以也就没有资格说了。

 

解决方法是:

def factory = SAXParserFactory.newInstance()
factory.setNamespaceAware(true);
factory.setValidating(false);
SAXParser parser = factory.newSAXParser()
XmlSlurper xmlSlurper = new XmlSlurper(parser)
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值