当前位置: 代码迷 >> Java Web开发 >> java.lang.ClassCastException: $Proxy62 异常问题
  详细解决方案

java.lang.ClassCastException: $Proxy62 异常问题

热度:731   发布时间:2008-10-31 10:18:33.0
java.lang.ClassCastException: $Proxy62 异常问题
最近弄了动态代理aop 没有想到出现了 java.lang.ClassCastException: $Proxy62 一个异常,详细如下:
10:10:51,593 ERROR [STDERR] java.lang.ClassCastException: $Proxy62
10:10:51,593 ERROR [STDERR]     at com.jebel.helper.ViewHelper.execute(ViewHelper.java:109)
10:10:51,593 ERROR [STDERR]     at com.jebel.controller.FrontControllerServlet.doGet(FrontControllerServlet.java:34)
10:10:51,593 ERROR [STDERR]     at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)

我搞了半天也找不出原因,真是快崩溃了. 上面出现在异常是出现在服务器上,而在本地确是正常,高手请教.非常感谢!!
搜索更多相关主题的帖子: java  lang  

----------------解决方案--------------------------------------------------------
java.lang.ClassCastException说得很明白了。

at com.jebel.helper.ViewHelper.execute(ViewHelper.java:109)
at com.jebel.controller.FrontControllerServlet.doGet(FrontControllerServlet.java:34)
到这两个类里面对应行看看嘛。。。。。

还找不到就贴代码。没代码没法说。
----------------解决方案--------------------------------------------------------
ApplicationContext context = new ApplicationContext();
            Object beanObj = context.getProxyBean(commandPo.getName()); (1)
            if(beanObj == null){
                beanObj = CommandFactory.getInstance().createCommand(commandPo.getName()); (3)
            }
            ICommand command = (ICommand)beanObj ; (2)
在(1) 的位置还没有问题,beanObj 的值为:com.jebel.command.sample.UserCommand@efc2d1,这个值因该是UserCommand 的实例,但是在(2)时,出现了异常 java.lang.ClassCastException: $Proxy62,如果我不用(3) 得到 beanObj 也没有问题,还望得到指点..
----------------解决方案--------------------------------------------------------
那就是3的问题了。
你看看你从3那里得到的是个什么。
----------------解决方案--------------------------------------------------------
经过两天的折磨,问题还总算被我找到了,原来Spring AOp 动态代理一定要有一个接口,也就是我的那个目标对象要实现一个接口,否则就得不到该实例对象,所以就出现了 java.lang.ClassCastException ,如果不用实现接口怎么办呢? 这个 cblib 给我们提供了帮助,还待研究..
----------------解决方案--------------------------------------------------------
  相关解决方案