假设我有一个无状态 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
在我看来,容器创建了一个接口,Foo
因为@LocalBean
它现在FooMock
也由 实现。OpenEJB 尝试将两个具有相同名称且生成的接口相同的类绑定,这是不可能的。
当然,如果我在课堂上发表评论@Stateless
,效果很好。@LocalBean
Foo
有什么想法或建议来解决这个问题吗?