在 EJB3中有一个Local 的接口 提供了两个 实现不用直接new 
如何用@EJB的方式访问? 可以这样做吗? 为什么?example:@Local
public interface LocalEJB
{
 void func();
}@stateless
public class localEJBBean1 implements LocalEJB
{
...
}@stateless
public class locaEJBBean2 implements LocalEJB
{
....
}client code:@EJB ... // 这个地方怎么写? 能指定使用的是哪个实现? 
LocalEJB ejb ;;

解决方案 »

  1.   

    @EJB localEJBBean1 ejbbean1;public ... youname(...) {
        ejbbean1.func();
    }
      

  2.   

    两个@stateless 指定不同的jndi,然后在引用时指定相应的jndi就可以了@stateless(mappedName="ejb/bean1")
    public class localEJBBean1 implements LocalEJB {...}@stateless(mappedName="ejb/bean2")
    public class localEJBBean2 implements LocalEJB {...}@EJB(mappedName="ejb/bean1")
    LocalEJB bean1;@EJB(mappedName="ejb/bean2")
    LocalEJB bean2;
      

  3.   

    这样就行了, 自己给他指定名字@Stateless(name="localEJBBean1")
    @Remote
    @Local
    public class localEJBBean1 implements LocalEJB 

    ...