J
justanotherone
Gast
Hallo liebes Forum,
ich stehe vor folgendem Problem:
Ich "muss" einen Super-Import in mein Programm bezüglich Beanshell einbauen. Klappt auch ganz gut. Problem ist, dass ich aus Modulen in Form von Plugins Klassen nachlade. Die folgende Fehlermeldung erscheint beim Einbinden von HTMLUnit 2.9:
Ich lade die Klassen der Plugins über einen URLClassLoader nach und mache jetzt folgendes:
Hier ein Bericht über das Classpath-Mapping von Beanshell:
Hat jemand eine Ahnung, was ich ändern kann? Ich nehme an, der Fehler oben entsteht, da Beanshell (oder Java?) versucht, die Klasse aus der Standardbibliothek anstatt aus Apache-Biblitheken zu laden. Was muss ich tun, um die eingebundenen Bibiliotheken höher zu priorisieren, also in der Reihenfolge zu verschieben?
LG und vielen Dank im Voraus!
ich stehe vor folgendem Problem:
Ich "muss" einen Super-Import in mein Programm bezüglich Beanshell einbauen. Klappt auch ganz gut. Problem ist, dass ich aus Modulen in Form von Plugins Klassen nachlade. Die folgende Fehlermeldung erscheint beim Einbinden von HTMLUnit 2.9:
Code:
java.lang.ClassCastException: org.apache.xerces.jaxp.DocumentBuilderFactoryImpl cannot be cast to javax.xml.parsers.DocumentBuilderFactory
Ich lade die Klassen der Plugins über einen URLClassLoader nach und mache jetzt folgendes:
Java:
Interpreter i;
...
URLClassLoader urlCL = (URLClassLoader)ClassLoader.getSystemClassLoader();
for(URL url : urlCL.getURLs()){
i.getClassManager().addClassPath(url);
}
i.eval("import *;");
Hier ein Bericht über das Classpath-Mapping von Beanshell:
Code:
Start ClassPath Mapping
Mapping: Directory C:\...\bin
Mapping: Archive: file:/C:/.../libraries/JSAP-2.1.jar
Mapping: Archive: file:/C:/.../jdk1.6.0_32/jre/lib/rt.jar
Mapping: Directory C:\...\bin
Mapping: Archive: file:/C:/.../libraries/JSAP-2.1.jar
Mapping: Directory C:\...\lib
Mapping: Archive: file:/C:/.../lib/bsh-2.0b4.jar
Mapping: Directory C:\...\lib\htmlunit-2.9
Mapping: Archive: file:/C:/.../lib/htmlunit-2.9/commons-codec-1.4.jar
Mapping: Archive: file:/C:/.../lib/htmlunit-2.9/commons-collections-3.2.1.jar
Mapping: Archive: file:/C:/.../lib/htmlunit-2.9/commons-io-2.0.1.jar
Mapping: Archive: file:/C:/.../lib/htmlunit-2.9/commons-lang-2.6.jar
Mapping: Archive: file:/C:/.../lib/htmlunit-2.9/commons-logging-1.1.1.jar
Mapping: Archive: file:/C:/.../lib/htmlunit-2.9/cssparser-0.9.5.jar
Mapping: Archive: file:/C:/.../lib/htmlunit-2.9/htmlunit-2.9.jar
Mapping: Archive: file:/C:/.../lib/htmlunit-2.9/htmlunit-core-js-2.9.jar
Mapping: Archive: file:/C:/.../lib/htmlunit-2.9/httpclient-4.1.2.jar
Mapping: Archive: file:/C:/.../lib/htmlunit-2.9/httpcore-4.1.2.jar
Mapping: Archive: file:/C:/.../lib/htmlunit-2.9/httpmime-4.1.2.jar
Mapping: Archive: file:/C:/.../lib/htmlunit-2.9/nekohtml-1.9.15.jar
Mapping: Archive: file:/C:/.../lib/htmlunit-2.9/sac-1.3.jar
Mapping: Archive: file:/C:/.../lib/htmlunit-2.9/serializer-2.7.1.jar
Mapping: Archive: file:/C:/.../lib/htmlunit-2.9/xalan-2.7.1.jar
Mapping: Archive: file:/C:/.../lib/htmlunit-2.9/xercesImpl-2.9.1.jar
Mapping: Archive: file:/C:/.../lib/htmlunit-2.9/xml-apis-1.3.04.jar
Mapping: Directory C:\...\plugins
Mapping: Archive: file:/C:/.../plugins/....jar
End ClassPath Mapping
Hat jemand eine Ahnung, was ich ändern kann? Ich nehme an, der Fehler oben entsteht, da Beanshell (oder Java?) versucht, die Klasse aus der Standardbibliothek anstatt aus Apache-Biblitheken zu laden. Was muss ich tun, um die eingebundenen Bibiliotheken höher zu priorisieren, also in der Reihenfolge zu verschieben?
LG und vielen Dank im Voraus!