Unter Tomcat mit java.lang.NoClassDefFoundError beim Zugriff auf ein servlet?

Ich Schreibe eine web-Anwendung in Eclipse, und ich bin mit dem XStream Serialisierungs-Bibliothek für die Erstellung Meiner JSON.

Habe ich gekapselten Code, baut das JSON in eine Klasse, die aufgerufen wird, durch meine servelet. Dann gekapselt Klasse hat eine main-Methode zum testen und wenn ich es laufen lasse, scheint alles gut zu funktionieren.

Jedoch wenn ich den Aufruf der Klasse von meinem servelet ich eine java.lang.NoClassDefFoundError Fehler, sayying, dass habe ich nicht geladen, die XStream Bibliotheken. Ich nehme an, ich habe meine build-Pfad falsch ist, aber ich habe die XStream Bibliotheken in den build-Pfad für das Projekt, so weit ich weiß, sollte es funktionieren.

Was wahrscheinlich läuft hier falsch?

Folgenden ist die genaue Ausnahme:

java.lang.ClassNotFoundException: com.thoughtworks.xstream.io.HierarchicalStreamDriver
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
    at SecurePaymentAjaxData.doPost(SecurePaymentAjaxData.java:44)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    at java.lang.Thread.run(Thread.java:619)

Und hier ist das maßgeblich code mit dem xstream-Klasse:

XStream xstream = new XStream(new JettisonMappedXmlDriver());
xstream.setMode(XStream.NO_REFERENCES);
xstream.alias("CallDataUpdate", CallDataUpdate.class);
xstream.alias("CardStatus", CardStatus.class);
String jsonData = xstream.toXML(updateData);

Ich betonen, dass dieser code funktioniert Prima, wenn die Ausführung einer java-Anwendung, ich bin sicher, es ist etwas zu tun mit dem laden der Bibliotheken, ich weiß nur nicht, wo ich schief gegangen ist.

Ist das Paket in das WEB-INF/lib-Ordner von Ihr KRIEG?

InformationsquelleAutor Omar Kooheji | 2009-05-13

Schreibe einen Kommentar