NullPointer Exception 오류로 하루가 걸렸어요. 오늘도 반나절이 걸렸어요.

5419 단어

NullPointer Exception 오류로 하루가 걸렸어요. 오늘도 반나절이 걸렸어요.


java.lang.NullPointer Exception은 인터넷에서 오랫동안 찾았고 관련 스티커도 많았습니다.대부분 인용 대상이 비어 있다고 말하지만 프로그램에서 테스트를 해 봤어요.rs 객체가 비어 있지 않습니다.하지만rs.getxx를 호출할 때마다...(String ....)방법은 자바가 나오는 거예요.lang.NullPointerException 예외어떤 사람들은 데이터베이스에 루트 필드가 존재하지 않는다고 말하지만, 나의 데이터베이스에서 나는 여러 번 검사한 적이 있다.이제는 정말 어떻게 해야 할지 모르겠다.나도 세이프티의 작용역 문제가 아닌지 의심한 적이 있다.그래도 결과가 없어요.고수가 좀 도와줬으면 좋겠어요.여기 있습니다. 감사합니다.심지어 Statement 기능이 유일하게 RsRsult 대상을 되돌려주는 것이 아닌가 의심스러웠다.두 개의 Staement가 정의되어 있습니다.하지만 답답한 것은 두 번째로 get를 호출하는 것이다.xxx () 방법이 있을 때java가 다시 나타납니다.lang.NullPointerException.아이고...<%--2008.10.1 ZiGong--%>
<%@ page language="java"contentType="text/html; charset=GBK"pageEncoding="GBK"%> <%@ page import = "java.sql.*"%> <%@ page import = "java.lang.*"%>
<%---------------------------method delete-----------------------------%> <%!private void delete(Connection conn, int id) {     Statement stat = null;     ResultSet rs = null;     int deleteid = 0;     try {         stat = conn.createStatement();         rs = stat.executeQuery("select * from bbsrecord where sid="+ id);         while (rs.next()) {             deleteid = rs.getInt("id");             if (rs.getInt("leaf") == 0) {                 stat.execute("delete from bbsrecord where id ="+ deleteid);                 delete(conn, deleteid);             } else {                 stat.execute("delete from bbsrecord where id ="+ deleteid);             }         }     } catch (SQLException e) {         System.out.println("SQL erro!");     } finally {         try {             rs.close();             stat.close();         } catch (SQLException e) {             System.out.println(":sqlexception:can not close");         }     } } %> <%--------------------------the delete.jsp'start------------------------%> <%             int id = Integer.parseInt(request.getParameter("id"));             int sid = 0;             Class.forName("java.sql.Driver");             Connection conn = null;             Statement stat = null;             String urlstring = "jdbc:mysql://127.0.0.1:3306/test?user=root&password=159753";             conn = DriverManager.getConnection(urlstring);             stat = conn.createStatement();               try {                 ResultSet rs = stat.executeQuery("select * from BbsRecord where id="+ id);                 rs.next();                 sid = rs.getInt("sid");                 ResultSet rss = stat.executeQuery("select * from bbsrecord where sid="+ sid);                 rss.last(); if(rss.getRow()=1) {if(rs.getInt("root") = 0) {//버그 보고서는 여기를 가리키지만 이해가 안 되고 이유도 찾을 수 없습니다.stat.execute("update bbsrecord set leaf = 1 where id="+ sid);                         stat.execute("delete from bbsrecord where id ="+ id);                         if (rs.getInt("leaf") == 0) {                             delete(conn,id);                         }                     }                 } else {                     stat.execute("delete from bbsrecord where id ="+ id);                     if (rs.getInt("leaf") == 0) {                         delete(conn, id);                     }                 }                 rs.close();                 rss.close(); } catch(SQLExceptione) {System.out.println("sql이상");            } finally {
                stat.close();                 conn.close(); %> <%----------------------------------------------------------------------- 데이터의 트리 표현

<%= "deleting record is succeed"%>             <%//response.sendRedirect("showtree.jsp");%>

오류 보고

HTTP Status 500 -


type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: java.lang.NullPointerException
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:522)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:416)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

 
root cause
java.lang.NullPointerException
com.mysql.jdbc.ResultSetImpl.findColumn(ResultSetImpl.java:1059)
com.mysql.jdbc.ResultSetImpl.getInt(ResultSetImpl.java:2719)
org.apache.jsp.delete_jsp._jspService(delete_jsp.java:110)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

 
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.16 logs.

좋은 웹페이지 즐겨찾기