Я знал, что бины с состоянием поддерживают сеанс разговора между вызовами методов другого экземпляра, но без сохранения состояния. Мой вопрос, предположим, у меня есть реализация бина без сохранения состояния, как показано ниже
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;
}
}
У меня есть клиент бина (сервлет) который инициирует вызов бина, как показано ниже
@EJB(mappedName="E/ValueEJB /remote")
ValueEJBInterface value;
....
value.setValue(250);
System.out.println(value.getValue());//This statement prints the value 250
....
Согласно моему пониманию, мой бин является бином без состояния и не должен отображаться со значением 250.
private int value;является мгновенной переменной, если один метод без сохранения состояния установит свое значение, значение будет истекло при выходе из метода. Но здесь я могу получить значение '250' даже через мой второй вызов метода.Это нарушение концепции лиц без гражданства?Мне чего-то не хватает?