我正在使用带有 CDI 的 JBoss 7.1.1。
我在 JNDI 中有一个名为 ServiceAccount 的无状态 bean。这是真正的服务实现。我有另一个名为 ServiceAccountMock 的 Statelss bean,它是一个 Mock 服务。两者都继承自同一个接口,并封装在一个 service.ear 中。
我想要做的是在 bean.xml 中声明模拟服务作为替代,重新部署我的服务耳,然后所有客户端都看到模拟版本(不更改客户端的任何内容)。
当我部署我的 service.ear 时,JBoss 说:
java.lang.IllegalArgumentException: JBAS011046: A component named 'ServiceAccount' is already defined in this module
确实如此,两种服务的声明方式相同(@Stateless(name="ServiceAccount"))。
如果我更改模拟版本的名称,我必须在客户端更改使用哪个 EJB(我不想这样做)。
有谁知道这是怎么做到的吗 ?