Несколько компонентов EJB с одинаковым именем

У нас есть два EJB-компонента с одинаковыми именами (скажем, MyBean), но в разных пакетах (разных подмодулях), скажем, com.example.module1 и com.example.module2, и они реализуют совершенно разные интерфейсы. Apache TomEE+ 1.7.2 распознает только один из них случайным образом при каждом развертывании и полностью игнорирует другой, даже не предупреждая!

Пробовал изменить свойство openejb.deploymentId.format в conf/system.properties на два ниже, но это не помогло.

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

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

Кто-нибудь знает, как решить эту проблему? Спасибо большое


person Satish    schedule 20.08.2015    source источник


Ответы (1)


Вы пытались установить имя для каждого?

@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
person John Manko    schedule 23.08.2015