没有用什么框架,就是用基本的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.   

    Class.forName("oracle.jdbc.driver.OracleDriver"); 
    String url = ""; 
    conn = DriverManager.getConnection(url, "", ""); 这样不会出错?url没有传入进去,oracle的drvier怎么知道你要连什么数据库哟你传入正确的url,username, password进去Oracle url的格式
    jdbc:oracle:thin:@localhost:1521:orcljdbc:oracle:thin:@[host]:<port>:[SID]
      

  2.   

    异常信息已经很清楚告诉你了tomcat给你的connection对象包了一层org.apache.tomcat.dbcp.dbcp.PoolingDataSource$PoolGuardConnectionWrapper was给你的connection对象包了一层com.ibm.ws.rsadapter.jdbc.WSJdbcConnection 你的jdbc操作里面肯定使用了一些oracle特定的api,解决方法是不要使用容器提供的连接池,用dbcp获取底层的connection(虽然tomcat用的也是dbcp),那个connection就是你要的,怎么获得自己去dbcp的网站上看吧