我在实践EJB的本地接口(local interface)时,也碰到这个问题!!!!!!
我编写的EJB已经部署到JBOSS中,在JBOSS的控制面板中已经发现这个EJB,显示的JNDI名称是: CalSin
我在另一个EJB中编写调用这个CalSin时(context.lookup("java:comp/env/CalSin")),系统抛出CalSin没有找到的异常.是不是在ejb-jar.xml中对CalSin描述有问题?
还是lookup中的参数有问题?

解决方案 »

  1.   

    可能是在调用的EJB中没有添加本地引用的原因,在调用Tal的Bena定义中加入
    <ejb-local-ref id="EJBLocalRef_1104822581329">
        <ejb-ref-name>Ta</ejb-ref-name>
        <ejb-ref-type>Entity</ejb-ref-type>
        <local-home>本地主接口类</local-home>
        <local>本地接口类名<local>
        <ejb-link>Ta</ejb-link>
    </ejb-local-ref>
      

  2.   

    我想知道:
    如果配置文件(XML)没有配置好,为什么EJB容器能够启动成功,并且显示JNDI名称?目前关于这方面的资料,可以到哪里找?
      

  3.   

    谢谢 luckchen(孤星) 。终于搞惦。
    我的测试环境是:两个都是EJB,一个提供远程接口,一个只提供本地接口。在提供远程接口的BEAN的描述中,要加上:
          <ejb-local-ref>
            <description>test it</description>
            <ejb-ref-name>CalWorkAge</ejb-ref-name><!--采用sun推荐的命名方式-->
            <ejb-ref-type>Session</ejb-ref-type>
            <local-home>com.zengabo.CalWorkAgeLocalHome</local-home>
            <local>com.zengabo.CalWorkAgeLocal</local>
            <ejb-link>CalWorkAge</ejb-link><!--必须和被应用的ejb-name匹配-->
          </ejb-local-ref>

    原来这一段是专门提供本地调用的。如果是WEB的组件(JSP或者SERVLET),则要部署在 web.xml中。JBUILDER为什么不自动产生这一段描述?害得我找了两天资料。
      

  4.   

    楼主有没有试过jsp和ejb分开打包的话,jsp还能调用ejb的localhome吗?