我已经用POI(包括poi-3.7和poi-ooxml-3.7)构建了一个Grails项目.我已经在项目的BuildConfig.groovy文件中添加了这2个外部库到依赖关系.当我编译它没有什么奇怪的.但是当我为该项目调用了命令“run-app”时,下面的stacktrace发生错误:
Base Directory: <path-to-my-project> Resolving dependencies... Dependencies resolved in 5546ms. Running script D:\_TOOLS\STS\grails-1.3.5\scripts\RunApp.groovy Environment set to development Running Grails application.. 2011-05-23 18:51:01,225 [main] ERROR context.GrailsContextLoader - Error executing bootstraps: java.lang.LinkageError: loader constraint violation: loader (instance of <bootloader>) prevIoUsly initiated loading for a different type with name "org/w3c/dom/DOMConfiguration" org.codehaus.groovy.runtime.InvokerInvocationException: java.lang.LinkageError: loader constraint violation: loader (instance of <bootloader>) prevIoUsly initiated loading for a different type with name "org/w3c/dom/DOMConfiguration" at grails.spring.BeanBuilder.invokeBeanDefiningClosure(BeanBuilder.java:723) at grails.spring.BeanBuilder.beans(BeanBuilder.java:573) at grails.spring.BeanBuilder.invokeMethod(BeanBuilder.java:519) at org.grails.tomcat.TomcatServer.start(TomcatServer.groovy:212) at grails.web.container.EmbeddableServer$start.call(Unknown Source) at RunApp$_run_closure5_closure12.doCall(RunApp:158) at RunApp$_run_closure5_closure12.doCall(RunApp) at _GrailsSettings_groovy$_run_closure10.doCall(_GrailsSettings_groovy:280) at _GrailsSettings_groovy$_run_closure10.call(_GrailsSettings_groovy) at RunApp$_run_closure5.doCall(RunApp:149) at RunApp$_run_closure5.call(RunApp) at RunApp.runInline(RunApp:116) at RunApp.this$4$runInline(RunApp) at RunApp$_run_closure1.doCall(RunApp:59) at RunApp$_run_closure1.doCall(RunApp:33) 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) at gant.Gant.this$2$withBuildListeners(Gant.groovy) at gant.Gant$this$2$withBuildListeners.callCurrent(Unknown Source) at gant.Gant.dispatch(Gant.groovy:415) at gant.Gant.this$2$dispatch(Gant.groovy) at gant.Gant.invokeMethod(Gant.groovy) at gant.Gant.executeTargets(Gant.groovy:590) at gant.Gant.executeTargets(Gant.groovy:589) Caused by: java.lang.LinkageError: loader constraint violation: loader (instance of <bootloader>) prevIoUsly initiated loading for a different type with name "org/w3c/dom/DOMConfiguration" at java.lang.Class.getDeclaredMethods0(Native Method) at java.lang.Class.privateGetDeclaredMethods(Class.java:2427) at java.lang.Class.getDeclaredMethods(Class.java:1791) at java.security.AccessController.doPrivileged(Native Method) at org.codehaus.groovy.util.LazyReference.getLocked(LazyReference.java:46) at org.codehaus.groovy.util.LazyReference.get(LazyReference.java:33) at grails.spring.DynamicElementReader.invokeMethod(DynamicElementReader.groovy:121) ... 26 more
这里是我的配置:
dependencies { provided ('com.oracle:ojdbc6_g:11.2.0.1.0') runtime ('org.apache.poi:poi:3.7','org.apache.poi:poi-ooxml:3.7') }
我该如何解决这个问题?非常感谢!
解决方法
这是我们终于在几个小时回来之后到来的修复.简而言之,从poi中排除xmlbeans,并创建另一个xmlbeans jar,并删除违规类.这是驱邪邪恶联动错误的咒语.
>修改BuildConfig.groovy
dependencies { compile ('org.apache.poi:poi-ooxml:3.6') {excludes "xmlbeans"} }
>提取xmlbeans
cd〜
mkdir xmlbeantmp
cd xmlbeantmp
cp〜/ .ivy2 / cache / org.apache.xmlbeans / xmlbeans / jars / xmlbeans-2.3.0.jar.
jar xf xmlbeans-2.3.0.jar
>删除违规类包
cd org
rm -rf w3c /
>重新创建jar
cd ../
rm xmlbean-2.3.0.jar
jar cf xmlbean-2.3.0.jar *
>将jar复制到您的项目库中
cp xmlbean-2.3.0.jar your_grails_project / lib /.
>显示爱情
点击回答向上箭头. 原文链接:https://www.f2er.com/java/122993.html