我收到以下异常:
Exception data: javax.ejb.IllegalLoopbackException: Cannot call a method on a singleton session bean while constructing the bean instance : MyWar.war#BarProducer
我的代码如下。
我有一个同时注入 Foo 和 Bar 的无状态会话 Bean。
@Stateless
public class MySessBean {
@Inject
private Foo foo;
@Inject
private Bar bar;
public SomeData myMethod1(...){
//does something with Foo
foo.xyz();
}
public SomeData myMethod2(...){
//does something with Bar
bar.xyz();
}
}
我有一个创建 Singleton Foo 的生产者:
@Singleton
public class FooProducer {
@Produces
public Foo getFoo() {
return new Foo();
}
}
我有另一个制作人创建了 Singleton Bar。为了创建 Bar 我需要注入 Foo:
@Singleton
public class BarProducer {
@Inject
private Foo foo;
@Produces
public Bar getBar() {
//uses Foo
foo.xyz();
}
}
我正在使用 WebSphere 8 (OpenWebBeans)。我想容器会知道它需要在创建 Bar 单例之前创建 Foo 单例?