我在实践EJB的本地接口(local interface)时,也碰到这个问题!!!!!!
我编写的EJB已经部署到JBOSS中,在JBOSS的控制面板中已经发现这个EJB,显示的JNDI名称是: CalSin
我在另一个EJB中编写调用这个CalSin时(context.lookup("java:comp/env/CalSin")),系统抛出CalSin没有找到的异常.是不是在ejb-jar.xml中对CalSin描述有问题?
还是lookup中的参数有问题?
我编写的EJB已经部署到JBOSS中,在JBOSS的控制面板中已经发现这个EJB,显示的JNDI名称是: CalSin
我在另一个EJB中编写调用这个CalSin时(context.lookup("java:comp/env/CalSin")),系统抛出CalSin没有找到的异常.是不是在ejb-jar.xml中对CalSin描述有问题?
还是lookup中的参数有问题?
<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>
如果配置文件(XML)没有配置好,为什么EJB容器能够启动成功,并且显示JNDI名称?目前关于这方面的资料,可以到哪里找?
我的测试环境是:两个都是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为什么不自动产生这一段描述?害得我找了两天资料。