public class InnerDocOLAP implements IFilePorter{
}获取bean的时候, 
 InnerDocOLAP innerDocOLAP = (InnerDocOLAP) BeanFactory
.getBean("innerDocOLAP");
报类型转换异常

解决方案 »

  1.   

    错误如下:
    java.lang.ClassCastException
    at com.toone.oa.archives.innerdoc.manager.FilePorterFactory.getBean(FilePorterFactory.java:9)
    at com.toone.oa.archives.innerdoc.action.innerDocAction.insertInnerDocSelected(innerDocAction.java:704)
    at com.toone.oa.archives.innerdoc.action.innerDocAction.innerDocSetUser(innerDocAction.java:304)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:324)
    at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:270)
    at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:187)
      

  2.   

    改为:FilePorte innerDocOLAP = (FilePorte)BeanFactory.getBean("innerDocOLAP");试试
      

  3.   

    Spring AOP是通过动态代理的实现。动态代理必须是针对接口的。
    你BeanFactory.getBean("innerDocOLAP")的是时候是得到TransactionProxyFactoryBean类还是接口,而造型成InnerDocOLAP这个类,当然是错的了啊。
    应该是InnerDocOLAP innerDocOLAP = (InnerDocOLAP) BeanFactory.getBean("innerDocOLAPTarget");
      

  4.   

    to asphebby:   现在的问题是这样:我不让InnerDocOLAP 实现接口, 程序实现是正常的
    现在是让InnerDocOLAP 类实现IfilePorter接口,  他就报异常