2013-02-21 16 views
9

Sto cercando di recuperare i dati dal database. Quando eseguo il programma mostra l'errore java.lang.ClassNotFoundException: org.apache.commons.lang.exception.NestableRuntimeException Ho il file jar json-lib nella mia directory WEB-INF --> lib, non so perché mostra questo errore per JSONArray.java.lang.ClassNotFoundException: org.apache.commons.lang.exception.NestableRuntimeException

Il mio codice è:

 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;             

    }     

E l'uscita della console è:

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) 

Si prega chiunque dirmi come risolvere questo problema ...... Grazie ....

+0

Probabilmente si sta perdendo il vaso 'commons-lang'. –

+0

@ Sotirios Delimanolis Non è un problema jar 'commons-lang' Ho il file jar .. –

+0

@James Si trova in' WEB-INF/lib'? E puoi ricontrollare che contenga la classe corretta? – millimoose

risposta

0

Che tipo di motore di app stai utilizzando? Ho avuto grossi problemi a lavorare con il motore di codice di Eclipse, ma sono passato ad Apaches Tomcat 7 e ho semplicemente reindirizzato il file .xml per utilizzare quello del progetto app.

+0

Sto usando Tomcat7 –

3

findjar.com suggerisce uno dei numerosi file jar che potrebbero mancare. Dovresti avere il file Apache commons-lang .jar in pacchetto con la tua soluzione. Dovrebbe essere nel tuo file .war che hai distribuito, o nella tua directory lib Tomcat.

Se ce l'hai (e hai confermato che puoi istanziare/classificare le classi da tale .jar nella tua soluzione) allora forse è un problema di versione .jar. Cosa è la versione di common-lang se la tua libreria JSON fa riferimento?

Scopri i JSON-lib transitive dependencies (scorrere verso il basso per questi)

+0

Non è un problema jar 'commons-lang' Ho il file jar .. –

+0

* Dove * ce l'hai? Ed è una delle versioni indicate da findjar.com? –

+0

Nella mia directory 'WEB-INF ---> lib' ... Sto avendo' commons-lang3-3.1' ma findjar.com spinge 'commons-lang-2' cosa devo fare .. ??? –

0

sembra, la sua non riesce a trovare il org.apache.commons.lang.exception.NestableRuntimeException.

Assicurarsi di avere la dipendenza commons-lang in WEB-INF -> lib.

a trovarlo qui http://commons.apache.org/lang/download_lang.cgi

+0

Il mio file jar contiene la classe 'NestableRuntimeException'. Ma ancora perché produce l'errore ... –

8

ho avuto lo stesso problema e - come lei - ho scaricato i nuovi commons-lang. Ma in realtà ho potuto risolverlo scaricando il apache commons-lang 2.6 (DDL) e mettere il barattolo sotto WEB-INF/lib

Speriamo che l'abbia risolto nel frattempo.

+0

Ho aggiunto la dipendenza nel pom.xml. Perché dovrei aggiungere i barattoli? – Shruthi

2

Utilizzando net.sf.json utilizza il Commons Lang e nell'elenco fornito da Brian (http://json-lib.sourceforge.net/dependencies.html), è specificato Commons Commons 2.5. net.sf.json è nella sua attuale versione non compatibile con Commons Lang 3. Per sicurezza dovresti usare la versione specificata (2.5) anche se abbiamo trovato che la versione 2.6 funziona bene.

ClassNotFoundException per NestableRuntimeException è un effetto del tentativo di utilizzare Commons Lang 3 con net.sf.json.

Dato che hai il vaso Commons Lang nel tuo WEB-INF/lib, tutto ciò che devi fare è scambiare quello che hai con la versione 3 con il vaso Commons Lang 2.5 (o 2.6).

5

vi manca il commons-lang jar versione 2 (cioè non l'ultima release)

le ultime classi commons-lang vaso VERSIONE 3 sono nel pacchetto: org.apache.commons.lang3

Mentre le classi il più vecchio commons-lang vaso versione 2 di sono nel pacchetto: org.apache.commons.lang

Problemi correlati