java.lang.NullPointerException
at Search.GetResult.getResults(GetResult.java:42)
at jsp_servlet._qcfd.__test._jspService(__test.java:171)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:33)
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:996)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:419)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:28)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
at edu.nudt.rmgs.userpurview.PurviewFilter.doFilter(PurviewFilter.java:64)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6458)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3661)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2630)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)

解决方案 »

  1.   

    空Pointer?不会是因为没初始化导致的吧?
      

  2.   

    出现 NullPointerException,一般是数组之类的为 null 造成的,贴出你的代码来。
      

  3.   

    代码:
    package Search;
    import java.sql.*;
    import java.sql.Connection;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import Search.DataConn;
    //import java.util.*;
    //import java.io.*;
    import javax.servlet.http.HttpSession;
    import javax.servlet.http.HttpServletRequest;public class GetResult{
    String cuudate;
    String humanid;
    String weather;
    private Connection conn;
    private Date Date1;
    private Date Date2;
    public void setDate1(Date Date1){
            this.Date1=Date1;
    }
    public void setDate2(Date Date2){
            this.Date2=Date2;
    }
    public Date getDate1(){
            return this.Date1;
    }
    public Date getDate2(){
            return this.Date2;
    }
    public GetResult()throws Exception{
      DataConn ss=new DataConn();
     Connection conn = ss.getDataConn();
    }
    public StringBuffer getResults(String sdeptid)throws Exception{
    //String session = this.getDepart();
    //int ret = 0;
    StringBuffer buffer=new StringBuffer();
    Statement stmt = conn.createStatement();
    ResultSet rset = stmt.executeQuery("select * from V_SITEDUTYRIZHITWO where SDEPTID='" + sdeptid + "' and DCURRDATE BETWEEN Date1 AND Date2 ");
      int i=1;
    while(rset.next()){buffer.append("<tr class=" + "Other_Row" + "><td>");
    cuudate=rset.getString(1).toString();
    buffer.append("<input type=" + "checkbox" + " name=" + "id" + "  value=" + cuudate + "  onClick=" + "checkfirst(this)" + "> " + "记录" + " +  i + ");
     humanid=rset.getString(8).toString();
     buffer.append("<td>" + cuudate + "</td>");
     buffer.append("<td>" + humanid + "</td>");
     weather=rset.getString(9).toString();
     buffer.append("<td>" + weather + "</td>");
    buffer.append("</td></tr>");
     i=i+1;
    }
      rset.close();
      stmt.close();
      conn.close();
    return buffer;
    }
    }
      

  4.   

    sql有问题吧
    BETWEEN Date1 AND Date2 
    data1和data2属于参数,该用参数的写法
    另外data1和data2是否在程序外调用过setDate1(Date Date1)和setDate2(Date Date2)
      

  5.   

    public GetResult()throws Exception{
      DataConn ss=new DataConn();
     Connection conn = ss.getDataConn();
    }改成
    public GetResult()throws Exception{
      DataConn ss=new DataConn();
      conn = ss.getDataConn();
    }
      

  6.   

    如果第42行是 Statement stmt = conn.createStatement(); 的话,很可能是构造函数中 conn 的初始化出了问题。
      

  7.   

    在 Statement stmt = conn.createStatement(); 前面加一个判断,看看 conn 是否为 null。
      

  8.   

    public GetResult()throws Exception{
      DataConn ss=new DataConn();
     Connection conn = ss.getDataConn();
    }
    对同意
    shiningsb(web思想社区『www.webtm.cn』) ( ) 
    因为你的ss.getDataConn()取过来的链接,只在GetResult方法中有效,下面的StringBuffer getResults用的还是没有初始化的conn
      

  9.   

    楼上不对吧,GetResult 是构造函数,conn 是成员,成员在构造函数中初始化没有问题,但是初始化的过程中可能除了问题,导致 conn 没有取到值。
      

  10.   

    好像还是我搞错了。在构造函数
    public GetResult()throws Exception{
      DataConn ss=new DataConn();
     Connection conn = ss.getDataConn();
    }
    中,ss.getDataConn()取回来的结果付给了局部对象 conn,而不是成员 conn,去掉上面语句中的 Connection 应该就可以了。