Groovy 1.5.7 出现java.lang.LinkageError问题
最近用Groovy编写测试脚本的时候,出现一个问题,在Groovy 1.5.7下面 groovy会读取jdk下面自带的一个dom处理包(org.w3c.dom),会和groovy脚本里面用到的watij库里面自带的xml-apis.jar冲突,因为版本不一样.
报的错如下:
Caught: java.lang.LinkageError: loader constraint violation: loader (instance of <bootloader>) previously initiated loading for a different type with name "org/w3c/dom/NamedNodeMap"
网上查了资料 搞了很久,最后查到http://jira.codehaus.org/browse/GROOVY-3356,发现症状一样 原来是groovy一个bug,目前该bug的状态是open,该bug的相关描述:
With Groovy versions 1.5.7 onwards there is a problem where Groovy loads DOM classes from the Java SDK in its RootLoader constructor. This makes it incompatible with XML parsing libraries having different versions of DOM interfaces. For example, with Oracle XML Parser I get:
既然还没有修复,我尝试退到groovy 1.5.6,恩 不再报错,看来是1..5.7自己的问题。
算了,先用1.5.6吧,反正差别也不大。
如果哪位高手找到更好的解决方法,请不吝赐教!
作者:
Chris Wang
出处:
http://chriswang.cnblogs.com/
文章版权归本人所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。