在 EJb 2.0 中,在 ejb-jar.xml 中,曾经有这样的条目:
<ejb-ref>
<ejb-ref-name>ejb/fooremote</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<remote>test.FooRemoteIF</remote>
</ejb-ref>
在带有注释的ejb3.0中,我们用@Remote代替<remote>
和@Stateless
对于 <ejb-ref-type>.
但在带注释的 bean 接口(interface)中,我没有看到 <ejb-ref-name>
的任何 JNDI 声明。 。那么客户端如何知道EJb接口(interface)的jndi名称
最佳答案
@EJB(name="...")
相当于 <ejb-ref-name>
。也就是说,如果您注释一个字段或方法以进行注入(inject),那么您根本不需要查找无状态 session bean。您仍然需要有状态 session bean 的 JNDI 名称,因此类级别 @EJB(name="...")
(可能在@EJBs
内,如果你有几个的话)是我的建议。
关于annotations - ejb 3 中 ejb ref 的注释是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17533542/