CDI で JBoss 7.1.1 を使用しています。
JNDI に ServiceAccount という名前のステートレス Bean があります。これが実際のサービスの実装です。モック サービスである ServiceAccountMock という名前の別の Statelss Bean があります。どちらも同じインターフェースから継承され、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 をクライアント側で変更する必要があります (変更したくありません)。
誰もそれを行う方法を知っていますか?