java.lang.ClassCastException: com.sun.proxy.$Proxy27 cannot be cast to com.bbk.n002.service.QuestionService

 1 严重: Servlet /N002-1.0 threw load() exception
 2 java.lang.ClassCastException: com.sun.proxy.$Proxy27 cannot be cast to com.bbk.n002.service.QuestionService
 3     at com.bbk.n002.servlet.CreateTaskQueueServlet.init(CreateTaskQueueServlet.java:28)
 4     at javax.servlet.GenericServlet.init(GenericServlet.java:160)
 5     at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1280)
 6     at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1193)
 7     at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1088)
 8     at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5176)
 9     at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5460)
10     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
11     at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
12     at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
13     at java.util.concurrent.FutureTask.run(Unknown Source)
14     at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
15     at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
16     at java.lang.Thread.run(Unknown Source)

Spring的文档中这么写的:Spring
AOP部分使用JDK动态代理或者CGLIB来为目标对象创建代理。如果被代理的目标实现了至少一个接口,则会使用JDK动态代理。所有该目标类型实现的
接口都将被代理。若该目标对象没有实现任何接口,则创建一个CGLIB代理。

       
所以,解决办法是,如果用JDK动态代理,就必须为被代理的目标实现一个接口(要注意的地方是:需要将ctx.getBean()方法的返回值用接口类型
接收);如果使用CGLIB强制代理,就必选事先将CGLIB包导入项目,设置beanNameAutoProxyCreator的
proxyTargetClass属性为true。

这里DeviceService实现了接口IDeviceService,所以会使用JDK动态代理,从而使(DeviceService)
deviceService强制转换的时候报错(因为实现IDeviceService接口的代理类是属于DeviceService子类)。因此需要使
用CGLIB强制代理。需要在springContext.xml中增加如下配置:

[html][/html]

 [asp](http:>

时间: 2024-09-25 12:06:40

java.lang.ClassCastException: com.sun.proxy.$Proxy27 cannot be cast to com.bbk.n002.service.QuestionService的相关文章

jboss容器分离后启动时报出java.lang.ClassCastException

问题描述 jboss容器分离后启动时报出java.lang.ClassCastException 在做一个jboss容器分离的,已经新建了profile目录,而且deploy下我也确定只有一个ear发布包和一个数据源的xml配置.但是在启动的时候还是报出以下的问题 11:40:17,822 ERROR [AbstractKernelController] Error installing to Start: name=persistence.unit:unitName=dcBackEnd-bet

急救: java.lang.ClassCastException: $Proxy2 cannot be cast to XXXX 错误

问题描述 我是个新手,这几天写了个小东西,刚开头就磕磕碰碰的,求哥哥大侠们能帮帮我.struts1.3+spring2.0+hibernate3报错信息:[com.jin.bbs.common.ActionExceptionHandler]-[ERROR] java.lang.ClassCastException: $Proxy2 cannot be cast to com.jin.bbs.user.UserManagerImpl at com.jin.bbs.user.presentation

Spring代理的问题 报java.lang.ClassCastException: $Proxy19 只有一个出问题 诡异~ 无解啊

问题描述 通过SpringAop配置的service报一下的错误 BaseService baseService; baseService = (BaseService) applicationContext.getBean("service_111"); BaseService 是一个接口,beanId为service_111的类实现这个接口,而且还有很多类实现这个接口,唯独调用这个累的时候进行强转的时候报以下错误,使用junit测试都好用,放在测试环境就报错 ,请大家帮忙! 这个时

db4o数据库存放的class含有相同的字段名且字段的类型也相同。现在想把这个库中数据读出来,但总是报 java.lang.ClassCastException错误

db4o数据库存放的class含有相同的字段名且字段的类型也相同.现在想把这个库中数据读出来,但总是报 java.lang.ClassCastException错误,请大侠指教 具体情况如下:   ObjectContainer db =null;    try {    db = Db4o.openFile("bean.yap");List<AlarmFilter> list_a = db.get(AlarmFilter.class);     for(int x = 0

iterator-最后一句的输出应该怎么写才会有键值对输出? java.lang.ClassCastException

问题描述 最后一句的输出应该怎么写才会有键值对输出? java.lang.ClassCastException public class Student { private String name; private String sex; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return se

java.lang.ClassNotFoundException: com.sun.el.ExpressionFactoryImpl.这个属于那个包

问题描述 使用Spring3MVC在启动tomcat时候,报这个错误哦.大家看看是缺少那个包?java.lang.ClassNotFoundException:com.sun.el.ExpressionFactoryImpl 解决方案 解决方案二:应该是因为使用了EL表达式没有导入EL表达式需要的那个包解决方案三:jstl.jarstandard.jar解决方案四:导入el_api.jar还是报这样的错,不知道是怎么回事解决方案五:引用2楼whereusejava的回复: jstl.jarsta

[Domino]“java.lang.ClassCastException:lotus.domino.cso.Item”异常解决办法

[Domino] "java.lang.ClassCastException:lotus.domino.cso.Item" 异常解决办法 编写者 日期 关键词 郑昀@ultrapower 2005-6 Java Domino RichTextItem   现象 通过Domino的Document.getFirstItem("Body")是可以获取当前邮件的Body字段,并试图直接转换为RichTextItem类型,从而访问该邮件的附件. 但是,有时候这个转换得到了下

java.lang.ClassCastException:org.apache.catalina.util.DefaultAnnotationProcessor cannot be cast to org.apache.AnnotationProcesso

org.apache.jasper.JasperException: java.lang.ClassCastException:org.apache.catalina.util.DefaultAnnotationProcessor cannot be cast to org.apache.AnnotationProcessor         at org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletW

java.lang.ClassCastException: Dispatch object expected

问题描述 运行项目出现异常:java.lang.ClassCastException:Dispatchobjectexpectedatcom.jacob.com.Dispatch.invokev(Dispatch.java:803)atcom.jacob.com.Dispatch.get(Dispatch.java:1153)atcom.lyang.governmentbill.utility.report.Java2Word.getTables(Java2Word.java:665)atcom