你怎么使用java:comp/env/MyBean来查找啊?那你有没有配置环境属性(在Bean的部署文件中<env-entry>),而且你用的是env,不能直接查找到Bean,应该是在java:comp/env/MyBean查找得到jndi,然后根据这个jndi来查找bean,如果你没有配置,那肯定不行,这种做法是为了部署Bean的时候灵活才采用的,如果你是自己调试,你可以直接查找jndi名字,简单的几个字母就可以了(不能加入java:comp关键字),你可以lookup("MyBean"),这不是很好吗?

解决方案 »

  1.   

    我写成MyBean了,报错不一样了,请问你知道下面的报错是什么意思吗?
    java.rmi.RemoteException: Error during setXXXContext: ; nested exception is: 
    java.lang.ClassCastException: bbb.MyBean_wke56q_LocalHomeImpljava.lang.ClassCastException: bbb.MyBean_wke56q_LocalHomeImpl
      

  2.   

    我写成MyBean了,报错不一样了,请问你知道下面的报错是什么意思吗?
    java.rmi.RemoteException: Error during setXXXContext: ; nested exception is: 
    java.lang.ClassCastException: bbb.MyBean_wke56q_LocalHomeImpljava.lang.ClassCastException: bbb.MyBean_wke56q_LocalHomeImpl
      

  3.   

    这说明lookup("MyBean")的造型不是(Datasource).可能是(MyBean)如果你需要的造型是Datasource,不妨lookup Datasource的jndi
    当然Datasource的jndi只有在XML文件中定义,这里假设你的Datasource jndi
    为 "DSJndi ",这应该写成:   DataSource ds = (Datasource)ctx.lookup("DSJndi");
      

  4.   

    你是不是是用LocalHome了,假如是,如果没有在EJB中使用,会出现该问题,LocalHome不能用做远程接口。
      

  5.   

    我的代码是:
    InitialContext initial = new InitialContext();
    ds = (DataSource)initial.lookup("MyBean");
    MyBean是我在jb里建立的datasource jndi name,我是不是写的和你说的一样啊