9.ClassCastException: com.sun.proxy.$Proxy24 cannot be cast to com.rchange.service.SysUser
来源:互联网 发布:波士顿矩阵分析案例ppt 编辑:程序博客网 时间:2024/05/19 00:13
在使用junit测试时,报错:
java.lang.ClassCastException: com.sun.proxy.$Proxy24 cannot be cast to com.rchange.service.SysUserService
解决办法:
Spring AOP部分使用JDK动态代理或者CGLIB来为目标对象创建代理。如果被代理的目标实现了至少一个接口,则会使用JDK动态代理。所有该目标类型实现的接口都将被代理。若该目标对象没有实现任何接口,则创建一个CGLIB代理。
所以,解决办法是,如果用JDK动态代理,就必须为被代理的目标实现一个接口(要注意的地方是:需要将ctx.getBean()方法的返回值用接口类型接收);如果使用CGLIB强制代理,就必选事先将CGLIB包导入项目,设置beanNameAutoProxyCreator的proxyTargetClass属性为true。
这里DeviceService实现了接口IDeviceService,所以会使用JDK动态代理,从而使(DeviceService) deviceService强制转换的时候报错(因为实现IDeviceService接口的代理类是属于DeviceService子类)。因此需要使用CGLIB强制代理。需要在springContext.xml中增加如下配置:
<aop:aspectj-autoproxy proxy-target-class="true"/>
或者:
使用接口接收返回值
ISysUserService sysUserService = (ISysUserService) atc.getBean("sysUserService");
0 0
- 9.ClassCastException: com.sun.proxy.$Proxy24 cannot be cast to com.rchange.service.SysUser
- java.lang.ClassCastException: com.sun.proxy.$Proxy27 cannot be cast to com.bbk.n002.service.Question
- java.lang.ClassCastException: com.sun.proxy.$Proxy27 cannot be cast to com.bbk.n002.service.Question
- Java.lang.ClassCastException: com.sun.proxy.$Proxy8 cannot be cast to com.bjsxt.service.UserServiceI
- java.lang.ClassCastException: com.sun.proxy.$Proxy8 cannot be cast to com.bjsxt.service.UserServiceI
- java.lang.ClassCastException: com.sun.proxy.$Proxy* cannot be cast to***问题解决方案
- ssh报错java.lang.ClassCastException: com.sun.proxy.$Proxy6 cannot be cast to org.service.impl.EmpServi
- ClassCastException: com.sun.proxy.$Proxy2 cannot be cast...
- java.lang.ClassCastException: com.sun.proxy.$Proxy9 cannot be cast
- java.lang.ClassCastException: com.sun.proxy.$Proxy4 cannot be cast to
- java.lang.ClassCastException: com.sun.proxy.$Proxy0 cannot be cast to java.sql.Connection异常问题解决
- java.lang.ClassCastException: com.sun.proxy.$Proxy0 cannot be cast to java.sql.Connection异常问题解决
- 'Java.lang.'ClassCastException: 'com.sun.proxy.$Proxy8 cannot be cast to 类名'
- Spring报错:java.lang.ClassCastException: com.sun.proxy.$Proxy2 cannot be cast to *
- FAQ(22):java.lang.ClassCastException: com.sun.proxy.$Proxy7 cannot be cast to com.spring.Helloworld1
- com.sun.proxy.$Proxy29 cannot be cast to
- com.sun.proxy.$Proxy25 cannot be cast to SessionImplementor
- Spring:com.sun.proxy.$proxy0 cannot be cast to XXX
- JavaScript (06)-流程控制语句
- EasyDarwin流媒体服务器RTSP拉模式流媒体转发模块设计
- 关于图形的学习笔记1
- C# 方法参数(默认参数)
- ios学习第五天(四)UILabel的使用
- 9.ClassCastException: com.sun.proxy.$Proxy24 cannot be cast to com.rchange.service.SysUser
- C语言进阶:整型提升
- ROS学习笔记(三):在ROS中使用USB网络摄像头传输图像
- 二叉树的所有路径-LintCode
- Qt 实现实时系统时间显示
- Python scrapy基础教程(二)
- CentOS7下安装MySQL5.7安装与配置(YUM)
- ionic2下拉刷新和上拉加载
- Hibernate学习笔记之关联关系