我在Tomcat的server.xml中配置了數據源
調用程式如下:public class SqlBeanPool{
public Connection conn=null;
public Statement stmt=null;
public Statement stmt2=null;
    public SqlBeanPool(){}
    public void createConnection(){
     try{
     Context ctx = new InitialContext();
DataSource ds =(DataSource)ctx.lookup("java:comp/env/jdbc/OracleDB");
conn= ds.getConnection();
stmt=conn.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY);
     stmt2=conn.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY);    
     }catch(Exception e){
     System.out.print("connect error:"+e.toString()+"<br>");
     }
     }//end funtion creatConnection();
    public void freeConnection(){
           if(stmt!=null){try{stmt.close();}catch (SQLException e){}stmt=null;}
           if(stmt2!=null){try{stmt2.close();}catch (SQLException e){}stmt2=null;}
         if(conn!=null){try{conn.close();}catch(SQLException e){}conn=null;}
}//end funtion; }
在執行查詢時,報錯如下,也就是在關閉stmt的那一行:
java.lang.NullPointerException
oracle.jdbc.driver.ScrollableResultSet.close(ScrollableResultSet.java)
org.apache.commons.dbcp.DelegatingResultSet.close(DelegatingResultSet.java:193)
org.apache.jsp.control.invoice_005fdetail_jsp._jspService(invoice_005fdetail_jsp.java:463)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)請問怎樣解決?

解决方案 »

  1.   

    好像是没有取到数据源,检查jndi名字,server.xml中数据源的设置
      

  2.   

    在createStatement之前测试一下:conn == null?
    先确定是那个对象为null
      

  3.   

    createStatement之前測試了
    conn==null 為false
    沒有問題ㄚ
      

  4.   

    提示如下信息:
    AbandonedObjectPool is used (org.apache.commons.dbcp.AbandonedObjectPool@160c4b0)
       LogAbandoned: false
       RemoveAbandoned: true
       RemoveAbandonedTimeout: 60
      

  5.   

    問題我已經找到啦
    因為我在server.xml中配置了兩個一樣的jndi
    不過還是非常謝謝大家