Object objref = initial.lookup(CodedNames.TX_EJBHOME);        EmployeeManager em =(EmployeeManager) PortableRemoteObject.narrow(objref,
            LocalTxHome.class);

解决方案 »

  1.   

    不好意思,重来一下
            Object objref = initial.lookup(CodedNames.TX_EJBHOME);        EmployeeManager em =(EmployeeManager) PortableRemoteObject.narrow(objref,
                EmployeeManager.class);
      

  2.   

    真不好意思,再重来一下
            Object objref = initial.lookup("log/EmployeeManagerBean/remote");        EmployeeManager em =(EmployeeManager) PortableRemoteObject.narrow(objref,
                EmployeeManager.class);
      

  3.   

    我的经验是,EJB重新部署后,WEB应用也重新部署一下就行了
      

  4.   

    我的经验是java.lang.ClassCastException一般是因为装载的classloader不一致,楼主可以跟踪一下,WEB应用的classloader和业务层的classlaoder通常是不一样的,让一个WEB的对业务层的是可见的。
      

  5.   

    to all:
    多谢你们的回复。对于cl55(CL) 的方法,我试了。但跟踪的结果:objref和em是相同的,都是proxy,整个运行的结果还是castexception。因为我的是整个enterprise的工程,所以deploy的时候总是ejb和web应用都同时重新部署的,所以schumiXsuse(我记住了名字,却忘记了密码) ,你说的我不大懂,“让一个WEB的对业务层的是可见的。”对于这个,可以给我一个baidu或者google关键词,我去搜下么?
      

  6.   

    试试这个吧,把
    deploy\jbossweb-tomcat55.sar\META-INF\jboss-service.xml
    的 UseJBossWebLoader 改为true,再重启服务器看看
      

  7.   

    多谢,现在已经解决了。
    原因应该还是classloader的问题,但不是goingchan(goingchan)提到的,只是在部署的时候做了下调整。
    整个工程用的是myeclipse来建的,建好后有test,testEJB,testWeb三个,以前是用test将整个工程一起deploy的,现在改了下,只是deploy testEJB和testWEb。以前有问题是classloader在找包的时候可能存在冲突。
    现在我是处在要懂不懂,似懂非懂阶段,希望大家多指教啊!
    当然,在lookup的时候偶,用的是cl55(CL) 的方法。
    好了,结贴。