HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception javax.servlet.ServletException: java.lang.NullPointerException
org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:523)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause java.lang.NullPointerException
com.hfut.oa.dao.DB.getRs(DB.java:66)
com.hfut.oa.action.LogonAction.executeLogonNo(LogonAction.java:74)
com.hfut.oa.action.LogonAction.execute(LogonAction.java:31)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.29 logs.
--------------------------------------------------------------------------------Apache Tomcat/6.0.29

解决方案 »

  1.   

    java.lang.NullPointerException
    com.hfut.oa.dao.DB.getRs(DB.java:66)空指针异常,看看代码啥样先。
      

  2.   

    public class DB {
        private ResultSet rs;
        private Statement stm;
        private Connection con;
        private String url=Content.URL;
        private String classname=Content.CLASSNAME;
        private int num_per=0;
        private int num_rs=0;
        private int num_currentpage=1;
        private int num_pages=1;
        public DB(){
         try{
         Class.forName(classname);
         }
         catch(ClassNotFoundException e){
         e.printStackTrace();
         }
        }
        
        public Connection getCon(){       
           try{
               con=DriverManager.getConnection(url,"sa","123");
           }catch(Exception e){e.printStackTrace(System.err);}
           return con;
        }
        public Statement getStm(){
           try{
              con=getCon();
              stm=con.createStatement();
           }catch(Exception e){e.printStackTrace(System.err);}
            return stm;
          }
          public Statement getStmed(){
           try{
              con=getCon();
              stm=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
           }catch(Exception e){e.printStackTrace(System.err);}
           return stm;
        }
          
        public ResultSet getRs(String sql){
    System.out.println(sql);
        if(sql==null)sql="";
    try{
    stm=getStmed();
    rs=stm.executeQuery(sql);
    }
    catch(SQLException e){e.printStackTrace();}
    return rs;
    }
       
        public int update(String sql){
         System.out.println(sql);
    int num=0;
         if(sql==null)sql="";
         try{
             stm=getStmed();
             num=stm.executeUpdate(sql);
         }
         catch(SQLException e){e.printStackTrace();num=0;}
         return num;
        }
      

  3.   

    public int inseart(String sql){
         int num=0;
         if(sql==null)sql="";
         System.out.println(sql);
         try{
             stm=getStmed();
             num=stm.executeUpdate(sql);
         }
         catch(Exception e){e.printStackTrace();num=0;}
         return num;
        }
         
        public int del(String sql){
         int num=0;
         if(sql==null)sql="";
         System.out.println(sql);
         try{
         stm=getStmed();
         num=stm.executeUpdate(sql);
         }
         catch(SQLException e){e.printStackTrace();}
         return num;
        }

        public ArrayList getalltextlist(String sql,int pos){
         ArrayList list=new ArrayList();
         if(sql==null)sql="";
         stm=getStmed();
         try{
         rs=stm.executeQuery(sql);
         Page page=new Page(rs,pos);       //通过实例化一个Page类对象设置每页记录数(num_per)、总记录数(num_rs)、总页数(num_pages)、当前页数(current_page)。
         setPage(page);                    //调用DB类的setPage(Page page)方法,将上面实例化的Page对象的属性值复给DB类中的属性。
         int i=1;
         rs=page.getRs();                  //调用Page类的getRs()方法,获得当前页的记录指针。
         while(rs.next()&&i<=num_per){    //变量i控制显示的记录数。
            TextForm textform=new TextForm();
            textform.setTextid(rs.getInt(Content.TEXTID));
            textform.setSubject(rs.getString(Content.TEXTSUBJECT));
            textform.setSender(rs.getString(Content.TEXTSENDER));
            textform.setGeter(rs.getString(Content.TEXTGETER));
            textform.setMark(rs.getString(Content.TEXTMARK));
            textform.setContent(rs.getString(Content.TEXTCONTENT));
            textform.setSendtime(rs.getString(Content.TEXTSENDTIME));
            list.add(textform);
                i++;
         }
         }
         catch(Exception e){e.printStackTrace();}
            return list;
        }   
        
       
        public ArrayList getallmeetlist(String sql,int pos){
         System.out.println(sql);
         ArrayList list=new ArrayList();
         if(sql==null)sql="";
         stm=getStmed();
         try{
         rs=stm.executeQuery(sql);
         Page page=new Page(rs,pos);
         setPage(page);
         int i=1;
         rs=page.getRs();
         while(rs.next()&&i<=num_per){
            MeetForm meetform=new MeetForm();
            meetform.setMeetid(rs.getInt(Content.MEETID));
            meetform.setSubject(rs.getString(Content.MEETSUBJECT));
            meetform.setSpeaker(rs.getString(Content.MEETSPEAKER));
            meetform.setListener(rs.getString(Content.MEETLIST));
            meetform.setTime(rs.getString(Content.MEETTIME));
            meetform.setAddress(rs.getString(Content.MEETADDRESS));
            meetform.setContent(rs.getString(Content.MEETCONTENT));
            list.add(meetform);
            i++;
             }
         }
         catch(Exception e){e.printStackTrace();}
            return list;
        }
        
        public ArrayList getallpcardlist(String sql,int pos){
         System.out.println(sql);
         ArrayList list=new ArrayList();
         if(sql==null)sql="";
         stm=getStmed();
         try{
         rs=stm.executeQuery(sql);
         Page page=new Page(rs,pos);
         setPage(page);
         int i=1;
         rs=page.getRs();
         while(rs.next()&&i<=num_per){
            PcardForm pcardform=new PcardForm();
            pcardform.setPcardid(rs.getInt(Content.PCARDID));
            pcardform.setSubject(rs.getString(Content.PCARDSUBJECT));
            pcardform.setAuthor(rs.getString(Content.PCARDAUTHOR));
            pcardform.setTime(rs.getString(Content.PCARDTIME));
            pcardform.setContent(rs.getString(Content.PCARDCONTENT));
            list.add(pcardform);
            i++;
             }
         }
         catch(Exception e){e.printStackTrace();}
            return list;
        }
        
        public ArrayList getallpersonlist(String sql,int pos){
         System.out.println(sql);
         ArrayList list=new ArrayList();
         if(sql==null)sql="";
         stm=getStmed();
         try{
         rs=stm.executeQuery(sql);
         Page page=new Page(rs,pos);
         setPage(page);
         int i=1;
         rs=page.getRs();
         while(rs.next()&&i<=num_per){
            UserForm userform=new UserForm();
            userform.setUserid(rs.getInt(Content.USERID));
            userform.setUsername(rs.getString(Content.USERNAME));
            userform.setUsertruename(rs.getString(Content.USERTRUENAME));
            userform.setUserable(rs.getInt(Content.USERABLE));
            userform.setUsergood(rs.getString(Content.USERGOOD));
            userform.setUserbranch(rs.getString(Content.USERBRANCH));
            userform.setUserjob(rs.getString(Content.USERJOB));
            userform.setUsersex(rs.getString(Content.USERSEX));
            userform.setUseremail(rs.getString(Content.USEREMAIL));
            userform.setUsertel(rs.getString(Content.USERTEL));
            userform.setUseraddress(rs.getString(Content.USERADDRESS));
            userform.setUseraccesstimes(rs.getInt(Content.USERACCESSTIMES));
            userform.setUserfoundtime(rs.getString(Content.USERFOUNDTIME));
            list.add(userform);
            i++;
         }
         }
         catch(Exception e){e.printStackTrace();}
            return list;
        }   
      

  4.   

    请将这一行标注一下com.hfut.oa.dao.DB.getRs(DB.java:66)
      

  5.   

    public ResultSet getRs(String sql){
    System.out.println(sql);
        if(sql==null)sql="";
    try{
    stm=getStmed();
    rs=stm.executeQuery(sql);
    }
    catch(SQLException e){e.printStackTrace();}
    return rs;
    }
      

  6.   

    先测试一下是否可以得到connection和statement