zoukankan      html  css  js  c++  java
  • 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]
    <aop:aspectj-autoproxy proxy-target-class="true"/> 

    <aop:aspectj-autoproxy proxy-target-class="true"/>

  • 相关阅读:
    GPS时钟参考源(GPS同步时钟)电力系统探讨
    GPS对时系统(时间同步系统)建设才是电力基础
    NTP授时服务器(NTP时钟服务器)基本原理介绍
    NTP授时服务器(北斗授时产品)在广播电视系统里的应用
    GPS北斗授时设备共视对比及传输链路接口
    基于NTP时钟服务器的时间同步数据采集系统
    利用GPS或北斗卫星开发的一款NTP授时服务器
    GPS时钟系统(卫星时钟同步)才是智能变电站的基础建设
    PTP精密时钟服务器IEEE1588(V2.0)协议浅析
    电子时钟显示屏,时间同步显示,GPS时钟系统
  • 原文地址:https://www.cnblogs.com/liuling/p/2014-8-23-001.html
Copyright © 2011-2022 走看看