2013-02-21 7 views
9

Ich versuche, die Daten aus der Datenbank abzurufen. Wenn ich das Programm starte zeigt es den Fehler java.lang.ClassNotFoundException: org.apache.commons.lang.exception.NestableRuntimeException Ich habe die JAR-Datei json-lib in meinem Verzeichnis WEB-INF --> lib, ich weiß nicht, warum es diesen Fehler für JSONArray zeigt.java.lang.ClassNotFoundException: org.apache.commons.lang.exception.NestableRuntimeException

Mein Code ist:

 StringBuilder sb=new StringBuilder(1024); 
     sb.append("select * from ").append(uname.trim()).append("vcomments").append(" where itemid=").append(itemId).append(" and albumid=").append(albumId); 
     sql=sb.toString(); 
     stmt = conn.prepareStatement(sql); 
     ResultSet rs = stmt.executeQuery(); 
     //ArrayList<String> CommArray=new ArrayList(); 
     JSONArray arrayObj=new JSONArray();    //#100 


     while(rs.next()){ 
      Commenter comment = new Commenter(); 
      comment.setUname(rs.getString("uname").trim()); 
      comment.setComment(rs.getString("comments").trim()); 
      arrayObj.add(comment.toString()); 

      }  
     commentObj=gson.toJsonTree(arrayObj); 
     myObj.add("commentInfo", commentObj); 
     out.println(myObj.toString()); 
     rs.close();                
     stmt.close();                
     stmt = null;                


     conn.close();                
     conn = null;             

    }     

Und die Konsolenausgabe ist:

SEVERE: Servlet.service() for servlet [VComment] in context with path [/skypark] threw exception [Servlet execution threw an exception] with root cause 
java.lang.ClassNotFoundException: org.apache.commons.lang.exception.NestableRuntimeException 
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714) 
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559) 
at java.lang.ClassLoader.defineClass1(Native Method) 
at java.lang.ClassLoader.defineClass(Unknown Source) 
at java.security.SecureClassLoader.defineClass(Unknown Source) 
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2904) 
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1173) 
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1681) 
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559) 
at skypark.VComment.doGet(VComment.java:100) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:621) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) 
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) 
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) 
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) 
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) 
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:931) 
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) 
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004) 
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) 
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
at java.lang.Thread.run(Unknown Source) 

Bitte mir jemand sagen, wie dieses Problem zu lösen ...... Danke ....

+0

Sie sind am ehesten den 'commons-lang' jar fehlen. –

+0

@ Sotirios Delimanolis Es ist nicht 'commons-lang' Jar-Problem Ich habe diese JAR-Datei .. –

+0

@James Ist es in' WEB-INF/lib'? Und können Sie überprüfen, dass es die richtige Klasse enthält? – millimoose

Antwort

0

Welche Art von App-Engine verwenden Sie? Ich hatte große Probleme mit der Eclipse-Code-Engine zu arbeiten, aber ich wechselte zu Apaches Tomcat 7 und leitete stattdessen die .xml-Datei um, um sie stattdessen im App-Projekt zu verwenden.

+0

Ich benutze Tomcat7 –

3

findjar.com schlägt eine von mehreren JAR-Dateien vor, die fehlen könnten. Sie sollten die Apache commons-lang .jar-Datei mit Ihrer Lösung packen. Es sollte in Ihrer WAR-Datei sein, die Sie bereitgestellt haben, oder in Ihrem Tomcat-Lib-Verzeichnis.

Wenn Sie es haben (und Sie haben bestätigt, dass Sie Klassen von dieser .jar in Ihrer Lösung instantiate/verweisen können), dann ist es vielleicht ein Problem mit der .jar-Version. Was Version von Commons-lang sollte Ihre JSON-Bibliothek referenzieren?

Überprüfen Sie die JSON-lib aus transitive dependencies (scrollen für diese nach unten)

+0

Es ist nicht 'commons-lang' jar Problem Ich habe diese jar Datei .. –

+0

* Wo * hast du es? Und ist es eine der Versionen, auf die sich findjar.com bezieht? –

+0

In meinem 'WEB-INF ---> lib'-Verzeichnis ... Ich habe' commons-lang3-3.1' aber findjar.com shoving 'commons-lang-2' was soll ich tun .. ??? –

0

Sieht aus wie, es ist nicht das org.apache.commons.lang.exception.NestableRuntimeException finden.

Stellen Sie sicher, Sie haben die commons-lang Abhängigkeit in WEB-INF -> lib.

Sie finden es hier http://commons.apache.org/lang/download_lang.cgi

+0

Meine JAR-Datei enthält die Klasse "NestableRuntimeException". Aber immer noch, warum es den Fehler erzeugt ... –

8

ich das gleiche Problem hatte und - wie Sie - ich die neueste commons-lang heruntergeladen. Aber eigentlich könnte ich es lösen, indem Sie die apache commons-lang 2.6 (DDL) herunterladen und das Glas unter WEB-INF/lib

Hoffentlich haben Sie es in der Zwischenzeit gelöst.

+0

Ich habe die Abhängigkeit in der pom.xml hinzugefügt. Warum sollte ich die Gläser hinzufügen? – Shruthi

2

Verwendung von net.sf.json verwendet die Commons Lang und in der Liste Brian bereitgestellten (http://json-lib.sourceforge.net/dependencies.html) Commons Lang Version 2.5 angegeben ist. net.sf.json ist in seiner aktuellen Version nicht kompatibel mit Commons Lang 3. Zur Sicherheit sollten Sie die angegebene Version (2.5) verwenden, obwohl wir festgestellt haben, dass Version 2.6 einwandfrei funktioniert.

Die ClassNotFoundException for NestableRuntimeException ist ein Effekt von Commons Lang 3 mit net.sf.json zu verwenden.

Da Sie das Commons Lang Jar in Ihrem WEB-INF/lib haben, müssen Sie nur das, was Sie mit Version 3 haben, mit dem Commons Lang 2.5 (oder 2.6) Jar austauschen.

5

Sie vermissen die commons-lang jar VERSION 2 (dh nicht die neueste Version)

Die neuesten commons-lang jar VERSION 3 der Klassen in dem Paket sind: org.apache.commons.lang3

Während die älteren commons-lang jar Version 2 Klassen sind im Paket: org.apache.commons.lang

Verwandte Themen