sapevo fagioli stateful mantengono sessione di conversazione tra diverse chiamata al metodo esempio, ma senza stato domanda volontà not.My, assumere ho un'implementazione bean senza stato come qui di seguitoDifferenza tra Stateless e Stateful session 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;
}
}
ho il mio client di fagioli (a servlet) che avvia l'invocazione di fagioli, come di seguito
@EJB(mappedName="E/ValueEJB /remote")
ValueEJBInterface value;
....
value.setValue(250);
System.out.println(value.getValue());//This statement prints the value 250
....
Secondo la mia comprensione come il mio fagiolo è bean senza stato non dovrebbe visualizzato con il valore 250.
012.valore int privato; è una variabile istantanea, se un metodo stateless imposta il suo valore, il valore sarà scaduto sul metodo exit.Ma qui, sono in grado di ottenere il valore '250' anche tramite la mia seconda chiamata al metodo. È una violazione del concetto di apolide? Mi manca qualcosa?
Okay.You sono right.if non mi sbaglio, lo scenario simile si comportava in modo diverso in EJB2.0/Weblogic EJB container, in cui il mio cliente EJB ottenuto 0 come getValue, significa per la mia prossima chiamata, contenitore servito con una diversa istanza di ejb. – ASChakkalakal