没有用什么框架,就是用基本的jdbc1、
Class.forName("oracle.jdbc.driver.OracleDriver");
String url = "";
conn = DriverManager.getConnection(url, "", "");
如上面的写法不会出错,调用存储过程正常执行。2、
ds = (DataSource) ic.lookup(strDataSource);
conn = ds.getConnection();
但是用连接池的数据源就会报异常。
tomcat下异常:
java.lang.ClassCastException: org.apache.tomcat.dbcp.dbcp.PoolingDataSource$PoolGuardConnectionWrapper
websphere下异常:
com.ibm.ws.rsadapter.jdbc.WSJdbcConnection请指导一下该修改什么地方可以正常的调用连接池中的数据源?

解决方案 »

  1.   

    这个应该是类型转化异常吧应该是你强转类型的时候报错  ds = (DataSource) ic.lookup(strDataSource);   确定一下是不是可以转成datasource  或许ic.lookup返回的类型不是这个
      

  2.   

    ds = (DataSource) ic.lookup(strDataSource); 
    conn = ds.getConnection(); 
    这个连接池的方法是正常能用的,但是在调用存储过程的时候会出现上面那个错误,调用普通的sql是没有问题的。
      

  3.   

    执行什么 SQL 跟你拿一个 JDBC Connection 一点关系都没有。不知道你的问题出在哪儿。
    看谁能猜出来。
      

  4.   

    顶了。今天我也遇到同样的问题了。调用mysql的存储过程没问题,调用oracle的存储过程就不能使用连接池分配的连接了。求高人解释。