12

我正在尝试从数据库中检索数据。当我运行程序时,它显示错误java.lang.ClassNotFoundException: org.apache.commons.lang.exception.NestableRuntimeException我的目录中有json-libjar 文件WEB-INF --> lib,我不知道为什么它显示此错误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)

请任何人告诉我如何解决这个问题......谢谢......

4

7 回答 7

9

我有同样的问题 - 和你一样 - 我下载了最新的 commons-lang。但实际上我可以通过下载 apache commons-lang 2.6 ( DDL ) 并将 jar 放在 WEB-INF/lib下来解决它

希望您在此期间解决了它。

于 2013-04-22T17:07:28.510 回答
7

您缺少 commons-lang jar VERSION 2(即不是最新版本)

最新的 commons-lang jar VERSION 3 的类在包中:org.apache.commons.lang3

虽然 OLDER commons-lang jar VERSION 2 的类在包中:org.apache.commons.lang

于 2013-06-29T08:20:29.997 回答
3

findjar.com建议使用可能丢失的几个 jar 文件之一。您应该将Apache commons-lang .jar 文件与您的解决方案打包在一起。它应该在您部署的 .war 文件中,或者在您的 Tomcat lib 目录中。

如果您拥有它(并且您已确认可以在解决方案中从该 .jar 实例化/引用类),那么可能是 .jar 版本问题。您的 JSON 库应该引用哪个版本的 commons-lang?

查看 JSON-lib传递依赖项(向下滚动查看这些)

于 2013-02-21T14:41:04.120 回答
2

使用 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,因此您只需将版本 3 中的那个与 Commons Lang 2.5(或 2.6)jar 交换即可。

于 2013-05-29T09:04:34.880 回答
1

看起来,它找不到org.apache.commons.lang.exception.NestableRuntimeException

确保您在 WEB-INF --> lib 中具有commons-lang依赖项。

你在这里找到它 http://commons.apache.org/lang/download_lang.cgi

于 2013-02-21T15:00:49.800 回答
0

您使用的是哪种应用程序引擎?我在使用 Eclipse 代码引擎时遇到了重大问题,但我更改为 Apaches Tomcat 7,只是将 .xml 文件重定向为使用应用程序项目中的那个。

于 2013-02-21T14:33:48.223 回答
0

缺少一些库(jar 文件)

因为我使用了“json-lib-2.4-jdk15.jar”,所以我必须添加其他需要库才能与它们一起使用,例如:

  • commons-beanutils-1.8.3.jar
  • commons-collections-3.2.1.jar
  • commons-lang-2.4.jar
  • commons-logging-1.1.1.jar
  • ezmorph-1.0.jar

参考链接:

更多细节检查这个

http://json-lib.sourceforge.net

于 2021-09-14T06:07:16.163 回答