浏览 3143 次
锁定老帖子 主题:一个很奇怪问题,折腾一天了
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-10-10
今天改装一个无级树型菜单,用spring来管理事务,ssh架构的,其中struts的Action代码如下:首先做了一个BaseAction用来读取spring配置文件的bean定义 java 代码
然后是处理控制的MenuManageAction extends BaseAction,选取其中的一段代码来看; java 代码
问题就出在这,TreeManager treeManager=(TreeManager)getBean("treeManager");居然 出现了ClassCastException!!!!!!!!!!!!!!!!!!! getBean方法虽然返回的是Object类型的但其实是个TreeManager类型的(见下面的配置文件),但就是一转型为TreeManager就得到ClassCastException,如果不转型得到的是Object类型的,但是就不能调用getRoot方法了,为了得到大家的帮助,我把其它相关代码也贴出来,spring配置文件如下: xml 代码
TreeManager.java如下: java 代码
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-10-11
换个JRE版本试试.
|
|
返回顶楼 | |
发表时间:2007-10-11
同意楼上的
先看看自己的jde/jre版本是否一致且1.5以上 然后,如果你用的是eclipse 检查转型前后两个类是否真的是同一个类 我就搞过一次前后两个名字一样,但是实际包不一样的情况 可以在前面import检查一下,或者把类名带包名写全 |
|
返回顶楼 | |
发表时间:2007-10-11
我用的是1.5版本的,换个版本还是不行啊!真叫人抓狂!
|
|
返回顶楼 | |
发表时间:2007-10-11
楼上lixiao说的的情况我也检查过了,我是把代码抽取出来了,只有定义两个bean,不可能出现名字相同而不是一个类的情况,而且我也测试过了,拿到的确实是TreeManager类型的,但它就不准我转型!
|
|
返回顶楼 | |
发表时间:2007-10-11
检查classloader是否是同一个~~~
检查应用服务器中是否存在2个spring,包括其他虚拟主机 检查spring是否跟你的应用在同一个host里。 |
|
返回顶楼 | |