java.lang. NoClassDefFoundError: org/jdom/input/SAXBuilder

okuhl

Grünschnabel
Hallo,

ich bin Neuling in der Java-Programmierung und probiere gerade diverse Funktionen aus. Ich verwende MyEclipseIDE, die auf Eclipse 3.02 basiert und habe mich soeben den XML-Funktionen zugewandt.

Dabei bin ich auf JDom gestossen. Leider bringt die folgende Zeile
Code:
SAXBuilder builder = new SAXBuilder();
eine Exception:
java.lang.NoClassDefFoundError: org/jdom/input/SAXBuilder

Natürlich ist mir klar, dass ich das passende Jar in den Buildpath einbinden muss. Ähnliches habe ich mit JUnit schon hinbekommen. Im Falle JDom habe ich folgendes gemacht:

Unter Projekt -> Properties -> Java Build Path -> Libraries -> Add External Jar's habe ich das jdom.jar ausgewählt, welches in dem JDom-Zip im Verzeichnis build zufinden war. Seit dem funktioniert auch die Code-Completion und der Editor hat auch den passenden import hinzugefügt:
Code:
import org.jdom.input.SAXBuilder;

Trotzdem der Fehler. Ich kanns mir nicht erklären, weil das Jar doch drin ist. Hier der ausführlichere Output:
Code:
exception

javax.servlet.ServletException: org/jdom/input/SAXBuilder
	org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:825)
	org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:758)
	org.apache.jsp.xml_jsp._jspService(xml_jsp.java:97)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

root cause

java.lang.NoClassDefFoundError: org/jdom/input/SAXBuilder
	de.netcologne.test.XmlTest.load(XmlTest.java:58)
	org.apache.jsp.xml_jsp._jspService(xml_jsp.java:81)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

Kann mir jemand den entscheidenden Tipp geben? Google brachte bisweilen keine Antwort. :(

Danke und Gruss,
Oliver.
 
Re: java.lang.NoClassDefFoundError: org/jdom/input/SAXBuilder

Hi,

kopier mal die jdom.jar in den Ordner C:\Programme\Java\j2re1.X.X\lib\ext.
Bei einer j2re installation wird meist dieses Verzeichnis mit angelegt. Falls dieser Pfad nicht existiert musst den entsprechenden halt suchen. Sollte aber dann gehen.

Die elegantere Art wäre jedoch wenn du die sourcen nimmst und zu deinen hinzufügst. Also nicht die jar Datei sondern nur die .java Dateien (Pfadstruktur beibehalten). Somit ist JDOM immer in deinem Programm integriert und du musst nicht vorraussetzen, dass jmd anderes dem du das Programm gibst auch JDOM bei sich im CLASS_PATH hat.

Gruß
l|N
 
Re: java.lang.NoClassDefFoundError: org/jdom/input/SAXBuilder

Danke, das mit dem Sourcecode hat funktioniert!

Allerdings verstehe ich noch nicht ganz, warum das mit dem .jar-File mit JUnit funktioniert, bei JDom jedoch nicht. Naja, so komme ich weiter! :)

Gruss,
Ollie.
 
Re: java.lang.NoClassDefFoundError: org/jdom/input/SAXBuilder

Hallo!

Wahrscheinlich hat dein Tomcat das jdom.jar nicht... kopier das doch einfach mal nach %TOMCAT_HOME%/common/lib

Gruß Tom
 
Oh man also ich habe das gleiche Problem. Hab die JDOM ins ext Verzeichnis kopiert und die Datei dem buildpath hinzugefügt. Es kommt aber immer noch die Meldung java.lang.NoClassDefFoundError: org/jdom/input/SAXBuilder

gibt es denn da vielleicht unterschiedliche Versionen?
 
Zurück