Eclipse RCP + eXist XMLDB Problem

jackblack

Grünschnabel
Hallo Zusammen,
ich schreibe gerade an einer RCP-Applikation mit Eclipse 3.2.1, welche eine Verbindung zu einer eXist XML-Datenbank aufbaut.
In einer View sollen die Elemente der Datenbank als Baum dargestellt werden. Meine Frage betrifft nicht die Darstellung oder die DB-Verbindung, das funktioniert alles soweit, innerhalb kleiner Testprogramme.
Nur, wenn ich die RCP-Application starte, bekomme ich folgende Exception:

Code:
java.lang.NoClassDefFoundError: org/xmldb/api/base/XMLDBException
	at java.lang.Class.getDeclaredConstructors0(Native Method)
	at java.lang.Class.privateGetDeclaredConstructors(Class.java:2357)
	at java.lang.Class.getConstructor0(Class.java:2671)
	at java.lang.Class.newInstance0(Class.java:321)
	at java.lang.Class.newInstance(Class.java:303)
	at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:157)
	at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:759)
	at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:243)
	at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:51)
	at org.eclipse.ui.internal.WorkbenchPlugin.createExtension(WorkbenchPlugin.java:234)
	at org.eclipse.ui.internal.registry.ViewDescriptor.createView(ViewDescriptor.java:69)
	at org.eclipse.ui.internal.ViewReference.createPartHelper(ViewReference.java:292)
	at org.eclipse.ui.internal.ViewReference.createPart(ViewReference.java:197)
	at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:566)
	at org.eclipse.ui.internal.PartPane.setVisible(PartPane.java:290)
	at org.eclipse.ui.internal.ViewPane.setVisible(ViewPane.java:525)
	at org.eclipse.ui.internal.presentations.PresentablePart.setVisible(PresentablePart.java:140)
	at org.eclipse.ui.internal.presentations.util.PresentablePartFolder.select(PresentablePartFolder.java:268)
	at org.eclipse.ui.internal.presentations.util.LeftToRightTabOrder.select(LeftToRightTabOrder.java:65)
	at org.eclipse.ui.internal.presentations.util.TabbedStackPresentation.selectPart(TabbedStackPresentation.java:394)
	at org.eclipse.ui.internal.PartStack.refreshPresentationSelection(PartStack.java:1144)
	at org.eclipse.ui.internal.PartStack.setSelection(PartStack.java:1097)
	at org.eclipse.ui.internal.PartStack.showPart(PartStack.java:1311)
	at org.eclipse.ui.internal.PartStack.createControl(PartStack.java:601)
	at org.eclipse.ui.internal.PartStack.createControl(PartStack.java:532)
	at org.eclipse.ui.internal.PartSashContainer.createControl(PartSashContainer.java:562)
	at org.eclipse.ui.internal.PerspectiveHelper.activate(PerspectiveHelper.java:244)
	at org.eclipse.ui.internal.Perspective.onActivate(Perspective.java:815)
	at org.eclipse.ui.internal.WorkbenchPage.onActivate(WorkbenchPage.java:2436)
	at org.eclipse.ui.internal.WorkbenchWindow$6.run(WorkbenchWindow.java:2616)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:67)
	at org.eclipse.ui.internal.WorkbenchWindow.setActivePage(WorkbenchWindow.java:2597)
	at org.eclipse.ui.internal.WorkbenchWindow.busyOpenPage(WorkbenchWindow.java:658)
	at org.eclipse.ui.internal.Workbench.busyOpenWorkbenchWindow(Workbench.java:795)
	at org.eclipse.ui.internal.Workbench.doOpenFirstTimeWindow(Workbench.java:1437)
	at org.eclipse.ui.internal.Workbench.openFirstTimeWindow(Workbench.java:1388)
	at org.eclipse.ui.internal.WorkbenchConfigurer.openFirstTimeWindow(WorkbenchConfigurer.java:190)
	at org.eclipse.ui.application.WorkbenchAdvisor.openWindows(WorkbenchAdvisor.java:708)
	at org.eclipse.ui.internal.Workbench.init(Workbench.java:1085)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1847)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:419)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at de.tfh.webserviceclient.ui.Application.run(Application.java:18)
	at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:78)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:92)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:68)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:400)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:177)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at org.eclipse.core.launcher.Main.invokeFramework(Main.java:336)
	at org.eclipse.core.launcher.Main.basicRun(Main.java:280)
	at org.eclipse.core.launcher.Main.run(Main.java:977)
	at org.eclipse.core.launcher.Main.main(Main.java:952)

Daraus würde ich schliessen, das er die Klasse
Code:
org/xmldb/api/base/XMLDBException
nicht finden kann.

Jedoch habe ich das jar-file(xmldb.jar), worin sich diese Klasse befindet, eingebunden, ich kann im Projekt-Explorer die Klasse auch sehen...:confused: :confused:

Aber was ist denn das Problem, weiss echt keinen Rat mehr! :(

Bin sehr dankbar für sachdienliche Hinweise, die zur Ergreifung des Fehlers führen..

Gruss,

Jack
 
Hallo Zusammen,
ich schreibe gerade an einer RCP-Applikation mit Eclipse 3.2.1, welche eine Verbindung zu einer eXist XML-Datenbank aufbaut
...
Jedoch habe ich das jar-file(xmldb.jar), worin sich diese Klasse befindet, eingebunden, ich kann im Projekt-Explorer die Klasse auch sehen...:confused: :confused:

Aber was ist denn das Problem, weiss echt keinen Rat mehr! :(
Hi,
das eine ist die Klassen (das jar) zur Compilezeit und das andere sie zur Ausführungszeit zu haben. D.h. es reicht nicht aus, das Jar nur im Build-Path zu haben - was bei dir, so denke ich, der Fall ist - es muss bei der Ausführung auch im Classpath liegen. Und da gibt es zwei Möglickeiten, die ich kenne:

1. Aus dem Jar ein Plugin machen: Neues Projekt->Plugin from existing Jar-Archive. Dieses Plugin einfach als benötigtes Plugin hinzufügen (Plugin-Editor->Dependencies)

2. Im Plugin-Editor im Reiter "Runtime", Section "Classpath" das Jar hinzufügen (es muss sich dabei im Projektverzeichnis befinden).

wasted time
 
Zurück