之前有人见过这个问题吗?这是什么原因?
执行脚本War时出错:界面中的加载程序约束违规 itable初始化:解析方法时 “groovy.util.XmlParser.setDocumentLocator(Lorg / XML /萨克斯/定位器;)V” 类加载器(实例) org / codehaus / groovy / grails / cli / support / GrailsRootLoader) 当前类,groovy / util / XmlParser,以及类加载器(实例 接口org / xml / sax / ContentHandler有 org / xml / sax / Locator类型的不同Class对象 签名
at java.lang.Class.forName0(Native Method)at java.lang.Class.forName(Class.java:169)at _GrailsWar_groovy $ _run_closure4.class $(_ GrailsWar_groovy)at at _GrailsWar_groovy $ _run_closure4。$获得$$类$常规$ UTIL $ XmlParser的(_GrailsWar_groovy) 在_GrailsWar_groovy $ _run_closure4.doCall(_GrailsWar_groovy:186)at at 战争$ _run_closure1.doCall(War.groovy:38)at gant.Gant $ _dispatch_closure5.doCall(Gant.groovy:381)at gant.Gant $ _dispatch_closure7.doCall(Gant.groovy:415)at gant.Gant $ _dispatch_closure7.doCall(Gant.groovy)at gant.Gant.withBuildListeners(Gant.groovy:427)在 gant.Gant.this $ 2 $ withBuildListeners(Gant.groovy)at gant.Gant $ this $ 2 $ withBuildListeners.callCurrent(Unknown Source)at gant.Gant.dispatch(Gant.groovy:415)在 gant.Gant.this $ 2 $ dispatch(Gant.groovy)at gant.Gant.invokeMethod(Gant.groovy)在 gant.Gant.executeTargets(Gant.groovy:590)在 gant.Gant.executeTargets(Gant.groovy:589)
编辑:正如蒂姆和彼得在这个问题下所回答的那样,典型的xml-api lib会妨碍类加载器。从常春藤缓存dir中删除后,我能够运行依赖项报告,并清楚地看到它被hibernate-> dom4j-> xml-api拉入。我在具有相同代码库的另一台机器上运行相同的报告,并没有看到这种依赖性被拉入。所以我仍然试图找出导致这个问题的原因。我的快速解决方法是在BuildConfig中添加以下内容
inherits("global") {
excludes ( "xml-apis", "commons-digester")
}
答案 0 :(得分:3)
Sounds like something已将xml-apis
模块拉入您的类路径。
GroovyWS有时是罪魁祸首。你最近在依赖项中添加了什么吗?
我认为该项目曾经工作过......所以它必须是某人最近添加的东西
回顾您的源代码管理可能会帮助您了解它是什么......
或者它可能是某人卡在JAVA_HOME / lib / ext中的东西?