grails无法建立战争

时间:2011-09-29 04:54:05

标签: grails dependencies war

之前有人见过这个问题吗?这是什么原因?

  

执行脚本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")
    }

1 个答案:

答案 0 :(得分:3)

Sounds like something已将xml-apis模块拉入您的类路径。

GroovyWS有时是罪魁祸首。你最近在依赖项中添加了什么吗?

我认为该项目曾经工作过......所以它必须是某人最近添加的东西

回顾您的源代码管理可能会帮助您了解它是什么......

或者它可能是某人卡在JAVA_HOME / lib / ext中的东西?