2015-08-20 6 views
0

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

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

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

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

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

ответ

0

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

@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 
Смежные вопросы