假設我有一個無狀態的bean:允許EJB3無狀態會話Bean的繼承嗎?
@Stateless(name = "fooBean")
@LocalBean
public class Foo {
...
}
我想創建一個用於測試的模擬(與CDI)
@Alternative @Specializes
public class FooMock extends Foo {
...
}
我註冊在beans.xml
模擬,當我用OpenEJB的運行它,我得到以下異常:
...
Caused by: javax.naming.NameAlreadyBoundException:
openejb/Deployment/fooBean/com.company.Foo!LocalBeanHome
在我看來,容器創建因爲接口,現在也由FooMock
實現。 OpenEJB嘗試將兩個類與具有相同生成接口的相同名稱綁定,這是不可能的。
當然,如果我在Foo
類中註釋掉@Stateless
和@LocalBean
,它工作正常。
任何想法或建議來解決這個問題?
應該可以繼承EJB類;子類不會是一個EJB,但是如果你只是測試,那麼它就不重要了。你有什麼異常? –