我正在使用帶有CDI的JBoss 7.1.1。JEE6:替代EJB聲明
我在JNDI中有一個名爲ServiceAccount的無狀態bean。這是真正的服務實施。 我有另一個名爲ServiceAccountMock的Statelss bean,它是一個模擬服務。 這兩個都從相同的接口herited,並打包在一個service.ear。
我想要做的是將mock服務聲明爲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指定不同的名稱時,部署錯誤是否會消失? –
@Reynols:是的。 – jmcollin92