具有相同名称的多个 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
我们有两个同名的 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