![](/img/trans.png)
[英]JSON-lib NoClassDefFoundError org.apache.commons.lang.exception.NestableRuntimeException
[英]java.lang.ClassNotFoundException: org.apache.commons.lang.exception.NestableRuntimeException
我正在嘗試從數據庫中檢索數據。 當我運行程序時,它顯示錯誤java.lang.ClassNotFoundException: org.apache.commons.lang.exception.NestableRuntimeException
我的WEB-INF --> lib
目錄中有json-lib
jar文件,我不知道為什么它為JSONArray
顯示此錯誤。
我的代碼是:
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;
}
控制台輸出是:
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)
請有人告訴我如何解決這個問題......謝謝......
我有同樣的問題 - 和你一樣 - 我下載了最新的commons-lang。 但實際上我可以通過下載apache commons-lang 2.6 ( DDL )並將jar放在WEB-INF / lib下來解決它
希望你在此期間解決了它。
你錯過了commons-lang jar VERSION 2(即不是最新版本)
LATEST commons-lang jar VERSION 3的類在包中:org.apache.commons.lang3
雖然OLDER commons-lang jar VERSION 2的類在包中:org.apache.commons.lang
findjar.com建議可能丟失的幾個jar文件中的一個。 您應該將Apache commons-lang .jar文件與您的解決方案一起打包。 它應該在您已部署的.war文件中,或者在您的Tomcat lib目錄中。
如果你擁有它(並且你已經確認你可以在你的解決方案中從那個.jar實例化/引用類)那么也許這是一個.jar版本的問題。 你的JSON lib應該引用什么版本的commons-lang?
查看JSON-lib 傳遞依賴項 (向下滾動這些)
使用net.sf.json使用Commons Lang並在Brian提供的列表中( http://json-lib.sourceforge.net/dependencies.html ),指定Commons Lang版本2.5。 net.sf.json的當前版本與Commons Lang 3不兼容。為了安全起見,你應該使用指定版本(2.5),即使我們發現版本2.6工作正常。
NestableRuntimeException的ClassNotFoundException是嘗試將Commons Lang 3與net.sf.json一起使用的效果。
由於您的WEB-INF / lib中有Commons Lang jar,所以您需要做的就是將您擁有的版本與Commons Lang 2.5(或2.6)jar交換。
您使用的是哪種應用引擎? 我在使用eclipse代碼引擎時遇到了重大問題,但我改為使用Apaches Tomcat 7並重定向.xml文件以使用應用程序項目中的那個。
看起來,它無法找到org.apache.commons.lang.exception.NestableRuntimeException 。
確保你在WEB-INF - > lib中擁有commons-lang dependecy。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.