【问题标题】:Servlet runtime error: Want to know what could be the reason?Servlet 运行时错误:想知道可能是什么原因?
【发布时间】:2015-03-24 00:30:39
【问题描述】:

servlet 中的代码导致运行时错误。

JSONArray 父级 = 新 JSONArray();

    int total=0;
    int count=1;
    int seatswon=0;


    while(rs.next()){
        count++;
        if(count>4){
            seatswon = rs.getInt(2);
            total += seatswon;          
        }
        else{
        JSONObject child = new JSONObject();
        seatswon = rs.getInt(2);
        String partyname=rs.getString(1);
        //System.out.println(partyname+"-"+ seatswon);
        total += seatswon;
        child.put("seatswon", seatswon);
        child.put("partyname", partyname);          
        parent.put(child);
        }

    }

    //total += total_others;
    DB.closeDB();
    JSONObject child = new JSONObject();
    child.put("seatswon", total);
    child.put("partyname","Total");

    parent.put(child);
    pw.print(parent);

    //System.out.println(parent.toString());
    pw.close();
    }catch(Exception e){e.printStackTrace();}

严重:servlet [getLevel] 的 Servlet.service() 在路径 [/Proect1] 的上下文中引发异常 [Servlet 执行引发异常],根本原因 java.lang.ClassNotFoundException: org.json.JSONArray 在 org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1720) 在 org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571) 在 api.akasalabs.nation.getNatLevel.doGet(getNatLevel.java:52) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:620) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:727) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 在 org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 在 org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) 在 org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) 在 org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:503) 在 org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170) 在 org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) 在 org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950) 在 org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) 在 org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421) 在 org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070) 在 org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611) 在 org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 在 org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 在 java.lang.Thread.run(Thread.java:722)

【问题讨论】:

    标签: json eclipse jakarta-ee servlets web-applications


    【解决方案1】:

    包含 org.json.JSONArray 类的 jar 不在 webapp 的 WEB-INF/lib 目录中。所以Tomcat找不到这个类。

    【讨论】:

    • 哦,那么如何添加它或按您说的做?
    • 您重新创建一个war 文件(或分解的war 结构),并将包含此类的jar 文件放在WEB-INF/lib 下,然后重新部署它。如果您不知道什么是 war 文件以及它的结构是什么,那么您应该在弄乱 servlet 之前了解这一点,因为这是先决条件。
    • 感谢它解决了,但又出现了更多错误
    • java.sql.SQLException: [Microsoft][ODBC Driver Manager] sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6956) 处的字符串或缓冲区长度无效,以及 sun.jdbc 处的更多内容.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7113)
    • 这是一个无关的问题。要做的第一件事:停止使用 JdbcOdbc 驱动程序,该驱动程序不应该使用多年,甚至不再是 Java 8 的一部分。
    猜你喜欢
    • 2013-06-25
    • 1970-01-01
    • 2022-11-01
    • 2011-11-18
    • 2014-10-08
    • 2022-07-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-18
    相关资源
    最近更新 更多