getFreeConnection方法的代码如下:


    public Connection getFreeConnection() {
        //返回数据库连接conn的接管类,以便截住close方法
        Connection conn2 = null;
        if (conn instanceof Connection) {
            conn2 = (Connection) Proxy.newProxyInstance(conn.getClass().getClassLoader(), conn.getClass().getInterfaces(), this);
        }
        return conn2;
    }
用MySQLv5版本的数据库驱动没有问题,使用MySQLv6和Oracle的数据库驱动时候报如下错误:
java.lang.ClassCastException: $Proxy0 cannot be cast to java.sql.Connection
        at dbpoolImpl._Connection.getFreeConnection(_Connection.java:126)
        at dbpoolImpl.ConnectionFactory.getFreeConnection(ConnectionFactory.java:113)
        at dbpoolImpl.DataBase_Task.checkDataBase(DataBase_Task.java:83)
        at dbpoolImpl.DataBase_Task.ProcessHandle(DataBase_Task.java:227)
在网上搜索很久,终于找到解决方法,将创建代理类的语句改一下“
conn2 = (Connection) Proxy.newProxyInstance(conn.getClass().getClassLoader(), new Class[]{Connection.class}, this);
原因就在于conn.getClass().getInterfaces()方法出来的是Class类数组,此数组的第一个元素必须是Connection才能把创建的代理类转为Connection对象,大家可以使用下面的语句
Class[] interfaces = conn.getClass().getInterfaces();
for (Class c : interfaces) {
System.out.println(c.getCanonicalName());
}
打印一下使用不同数据库驱动时conn.getClass().getInterfaces()里面都有啥元素
 

参考博文:http://blog.csdn.net/njchenyi/article/details/3091092

转载于:https://blog.51cto.com/hongxuwei/703985

Proxy.newProxyInstance处引起 java.lang.ClassCastException 问题的解决方法相关推荐

  1. Idea运行项目报错:java.lang.OutOfMemoryError: Java heap space/ java.lang.OutOfMemoryError: GC overhead 解决方法

    问题 使用Idea运行代码量比较多的项目时,会报错:java.lang.OutOfMemoryError: Java heap space java.lang.OutOfMemoryError: GC ...

  2. 报 java.lang.ExceptionInInitializerError 的常见解决方法

    0. 如果你是遇到这个问题? java.lang.ExceptionInInitializerError Caused by: org.apache.ibatis.exceptions.Persist ...

  3. 出现Caused by: java.lang.NullPointerException异常的解决方法

    发现 拿到老师的项目,项目启动时正常,网页提交数据时出现Caused by: java.lang.NullPointerException 报错, 上一条日志显示 com.mysql.jdbc.exc ...

  4. Exception in thread main java.lang.NoClassDefFoundError: antlr/ANTLRException 解决方法

    struts2.3.15 hibernate 3.2.0 整合,报错Exception in thread "main" java.lang.NoClassDefFoundErro ...

  5. app联调出现java.lang.SecurityException问题的解决方法

    最近在梳理以前做项目时记的笔记.当时开发的一个模块涉及到与搜索模块的联调,通过联调实现用搜索功能实现跳转自己开发的模块中的几个Activity,但在联调过程中,报出了:java.lang.Securi ...

  6. eclipse下java.lang.OutOfMemoryError: PermGen space解决方法

    Eclipse 中修改tomcat设置内存大小 修改1: 在Eclipse中下面Servers双击Tomcat Server... 然后点击General InformAtion 下的Open lau ...

  7. eclipse运行报java.lang.OutOfMemoryError: PermGen space解决方法

    分享一个亲测的网址: http://blog.csdn.net/cuker919/article/details/45246073

  8. java.lang.NumberFormatException: null的解决方法

    1  首先附上我的代码: Integer reviewid=Integer.valueOf(request.getParameter("reviewid"));System.out ...

  9. java.lang.ClassCastException: com.sun.proxy.$Proxy2 cannot be cast to...异常

    java.lang.ClassCastException: com.sun.proxy.$Proxy2 cannot be cast to...异常 参考文章: (1)java.lang.ClassC ...

  10. ssh报错java.lang.ClassCastException: com.sun.proxy.$Proxy6 cannot be cast to org.service.impl.EmpServi

    错误如下: java.lang.ClassCastException: com.sun.proxy.$Proxy6 cannot be cast to org.service.impl.EmpServ ...

最新文章

  1. 计划策略 : 40 / 20 测试
  2. 申请美国博士后的经验
  3. Batoo JPA –比领先的JPA提供商快15倍
  4. LeetCode 433. 最小基因变化(广度优先搜索)
  5. Vue.js使用矢量图
  6. 根据屏幕大小加载css,css根据屏幕大小切换样式
  7. QQ 小程序来了,怎么做?
  8. 短视频出海,风云再起
  9. 投资平台服务器状态未知,投资者说20130606:503 service unavailable错误解决教程
  10. 硬盘被计算机限制如果解锁,硬盘被锁怎么办
  11. 音乐铃声解析提取API接口
  12. eda交通灯控制器波形输入_EDA 基于quartus平台制作的步行街自助式交通灯控制器(含vhdl程序、波形图、及电路原理图)+课程设计报告...
  13. ARM指令集 mov指令,ldr=伪指令,地址访问指令ldr,str,位运算指令and,orr,eor,bic,逻辑位移指令lsl,lsr
  14. 网站黑白色调之filter属性
  15. 关于BHO不能够正常运行的问题!
  16. 百度搜索之site 使用
  17. 一个内存不能被written的问题
  18. nginx错误:unknown directive 锘? in F:\nginx/conf/nginx.conf:3
  19. C#|论文|毕业论文|毕业论文格式|毕业论文范文|毕业论文参考
  20. 购买财务软件需要注意的4个方面

热门文章

  1. Centos 7 配置 apache https访问以及Chrome 忽略证书错误继续
  2. 2020杭电多校6 1006A Very Easy Graph Problem血泪史
  3. Swift中类型推导(掌握)
  4. Mockplus黑色星期五和网络星期一特惠
  5. Mysql——数据查询
  6. JQuery获取浏览器窗口的可视区域高度和宽度,滚动条高度
  7. [C#]用Forms.TreeView显示Icon会有黑边
  8. NetBeans 6.9 正式版发布!
  9. inDesign教程,如何创建风格化的书籍封面?
  10. indesign软件教程,如何更改内容颜色?