zxhong,麻烦给段代码看看,我的出现这个异常:
java.lang.ClassCastException: org.apache.commons.dbcp.BasicDataSou
rce我的代码:
Context initCtx = new InitialContext();
Context envContext = (Context)initCtx.lookup("java:/comp/env");
this.ds = (ConnectionPoolDataSource)envContext.lookup("jdbc/mysqlserver_bbs") ;
PooledConnection pcon = ds.getPooledConnection() ;
this.conn = pcon.getConnection() ; this.stmt = this.conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
java.lang.ClassCastException: org.apache.commons.dbcp.BasicDataSou
rce我的代码:
Context initCtx = new InitialContext();
Context envContext = (Context)initCtx.lookup("java:/comp/env");
this.ds = (ConnectionPoolDataSource)envContext.lookup("jdbc/mysqlserver_bbs") ;
PooledConnection pcon = ds.getPooledConnection() ;
this.conn = pcon.getConnection() ; this.stmt = this.conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
this.ds = (ConnectionPoolDataSource)envContext.lookup("jdbc/mysqlserver_bbs") ;
你的类造型是否正确
jdbc/mysqlserver_bbs 没有问题的呀,我用datasource连都没问题的,就是用ConnectionPoolDataSource 就出错了! bdsc炫耀自己是高手呀,ConnectionPoolDataSource不是连接池是什么,就你知道接口呀??接口是用来实现的,不是你这样炫耀的!!!dhcp 是tomcat自带的连接池管理类吧,谁用过,好用么?
欠抽啊,不来好好回答问题,放什么冷气,有种就发表以下高见!
你的jdbc版本?
this.ds =
(ConnectionPoolDataSource)envContext.lookup("jdbc/mysqlserver_bbs");
就能把 lookup 得到的东东变成 ConnectionPoolDataSource 了?呵呵,也许人家不是实现的这个接口呢?所以会出现 ClassCastException。要搞清楚,接口其实是什么事都不做的,我们只是通过接口类型的变量调用实现了这个接口的具体的类罢了(有点象把子类的值赋给一个父类的变量那种情形)。
(DataSource)envContext.lookup("jdbc/mysqlserver_bbs");