【发布时间】:2012-01-31 09:03:04
【问题描述】:
我知道有状态 bean 在不同的实例方法调用之间保持会话会话,但无状态不会。我的问题,假设我有一个如下所示的无状态 bean 实现
import javax.ejb.Stateful;
import javax.ejb.Stateless;
import com.tata.ejb3.data.HelloEJBInterface;
@Stateless
public class ValueEJB implements ValueEJBInterface{
private int value;
@Override
public int getValue() {
return this.value;
}
@Override
public void setValue(int value) {
this.value = value;
}
}
我有我的 bean 客户端(一个 servlet),它启动 bean 调用,如下所示
@EJB(mappedName="E/ValueEJB /remote")
ValueEJBInterface value;
....
value.setValue(250);
System.out.println(value.getValue());//This statement prints the value 250
....
根据我的理解,因为我的 bean 是无状态 bean,它不应该以 250 的值显示。
私有 int 值;是一个即时变量,如果一个无状态方法设置了它的值,该值将在方法退出时过期。但是在这里,即使通过我的第二个方法调用,我也能够获得值“250”。是否违反了无国籍概念?我缺什么吗?
【问题讨论】:
标签: ejb-3.0