Предположим, у меня есть лица без боб:Допускается ли наследование для EJB3 сессионных фанатов без учета состояния?
@Stateless(name = "fooBean")
@LocalBean
public class Foo {
...
}
Я хочу создать макет для тестирования (с КДИ)
@Alternative @Specializes
public class FooMock extends Foo {
...
}
я зарегистрировать макет в beans.xml
, и когда я запускаю его с OpenEJB, Я получаю следующее исключение:
...
Caused by: javax.naming.NameAlreadyBoundException:
openejb/Deployment/fooBean/com.company.Foo!LocalBeanHome
мне кажется, что контейнер создает интерфейс для Foo
из @LocalBean
, который теперь реализован также FooMock
. OpenEJB пытается связать два класса с тем же именем того же сгенерированного интерфейса, что невозможно.
Конечно, если я прокомментирую @Stateless
и @LocalBean
в Foo
класс, он отлично работает.
Любая идея или предложение решить эту проблему?
Должно быть возможным подкласс класса EJB; подкласс не будет EJB, но если вы просто тестируете, это не имеет значения. Какое исключение вы получаете? –