【发布时间】:2013-01-04 10:57:35
【问题描述】:
我正在使用带有 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(我不想这样做)。
有人知道怎么做吗?
【问题讨论】:
-
当您在 @Stateless 注释中为替代无状态 EJB 指定不同名称时,部署错误是否会消失?
标签: ejb-3.0 java-ee-6 jboss7.x cdi