java.lang.LinkageError: loader-constraint-Verletzung im Grails-Projekt
Habe ich gebaut, ein Grails-Projekt mit POI (inklusive poi-3.7 und poi-ooxml-3.7). Ich habe diese 2 externe Bibliotheken, um Abhängigkeiten block in der BuildConfig.groovy-Datei von meinem Projekt. Es gibt nichts merkwürdig, wenn ich es kompiliert haben. Aber bei mir heisst der Befehl "Lauf-app" für das Projekt,, ein Fehler ist aufgetreten unter 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
Und hier ist meine Konfiguration:
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')
}
Wie kann ich tun, damit dieses Problem lösen? Vielen, vielen Dank!
- Hi ... ich habe das gleiche problem erwarten, dass der Typ, mit dem Namen "javax/management/MBeanServer". Ich weiß wirklich nicht, von wo aus zu starten und es macht mich verrückt. Können Sie mir irgendeinen Hinweis?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist der fix, das wir schließlich um kam, um nach mehreren Stunden hin und her. Kurz gesagt, ausschließen xmlbeans von poi und weiteres erstellen xmlbeans Glas mit der beanstandeten Klasse entfernt. Hier ist die Beschwörung auszutreiben die bösen Verknüpfung Fehler.
Extrakt 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
Entfernen Sie problematische Klasse Paket
cd org
rm -rf w3c/
Erstellen der jar -
cd ../
rm xmlbean-2.3.0.jar
jar cf xmlbean-2.3.0.jar *
Kopieren jar in Ihre Projekte lib
cp xmlbean-2.3.0.jar your_grails_project/lib/.
Zeigen die Liebe
klicken Sie auf Antwort-Pfeil nach oben. 🙂
Gibt es einen Konflikt zwischen einem POI Abhängigkeiten (xmlbeans) und grails. Können Sie ausschließen, können Sie es wie folgt:
Folgende links waren hilfreich in aufspüren der problem:
Ich hatte ein ähnliches problem und es war ein cache Problem. Ich löschte die .grails und .ivy2-Verzeichnis (unter dem Haus) und es löste meine Probleme. Viel Glück.
ich vermute, dass ich dieses problem zu beheben.
Lösung Steve-Wand-wollen, nicht für mich auf grails 2.0.0 aufgrund von PermGen space /Out of memory während "grails run-app".
BuildConfig.groovy
Dann herunterladen xbean-2.1.0.jar und anwenden Lösung von Steve Wall:
Es funktioniert gut für mich! Viel Glück!
Ich weiß nicht, ob dies dein problem lösen, aber meine Vermutung ist, dass Sie Ihre Abhängigkeiten gelten zum POI sollte wohl compile-Zeit. Versuchen Sie, Ihre Abhängigkeiten: