具有相同名称的多个 EJB bean

Multiple EJB beans with same name

我们有两个同名的 EJB bean(比如 MyBean)但是在不同的包(不同的子模块)中,比如 com.example.module1 和 com.example.module2 它们完全实现不同的接口。 Apache TomEE+ 1.7.2 在每次部署时只随机识别其中一个,完全忽略另一个,甚至没有警告!

尝试将 conf/system.properties 中的 openejb.deploymentId.format 属性 更改为以下两个,但这没有帮助。

openejb.deploymentId.format = {appId}/{ejbJarId}/{ejbName}

openejb.deploymentId.format = {appId}/{ejbJarId}/{ejbClass}

有人知道如何解决这个问题吗?非常感谢

你试过给每个人起个名字吗?

@Stateless(name="MyBean1")
public class MyBean implements MyBeanLocal

或注释

@Documented
@Qualifier
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD, ElementType.FIELD, ElementType.PARAMETER, ElementType.TYPE})
public @interface TypeOne {

}

@Documented
@Qualifier
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD, ElementType.FIELD, ElementType.PARAMETER, ElementType.TYPE})
public @interface TypeTwo {

}


@TypeOne
@Stateless
public class MyBean implements MyBeanLocal

@TypeTwo
@Stateless
public class MyBean implements MyBeanLocal