我在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)請問怎樣解決?
調用程式如下: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)請問怎樣解決?
先确定是那个对象为null
conn==null 為false
沒有問題ㄚ
AbandonedObjectPool is used (org.apache.commons.dbcp.AbandonedObjectPool@160c4b0)
LogAbandoned: false
RemoveAbandoned: true
RemoveAbandonedTimeout: 60
因為我在server.xml中配置了兩個一樣的jndi
不過還是非常謝謝大家