多种可能性的 EJB 注入查找顺序

Order of EJB injection lookup for multiple possibilities

具有@Local 接口的多个实现:

@Local
public interface LocalInterface {
}

@Stateless
public class FirstLocalImpl implements LocalInterface {
}

@Stateless
public class SecondLocalImpl implements LocalInterface {
}

和第三个 bean 中的 @EJB 注入:

public class Foo {
   @EJB
   LocalInterface local;
}

选择哪个实现注入Foo::local,顺序是如何定义的?请注意,没有指定 ejb-jar.xml。

你会在部署时得到一个详细的错误,告诉你同一个接口有两个实现。要解决这个问题,您必须指定 bean 名称:

@EJB(beanName="FirstLocalImpl")
LocalInterface local;