Apenas estoy comenzando a leer sobre EJB 3, y me surge la siguiente duda, ¿Qué quiere decir exactamente que los beans Stateless no mantienen el estado y los Stateful sí lo hacen?
Para comenzar creé un bean de prueba, primero le coloqué la anotación @Stateless y luego la anotación Statelful y yo veo el mismo comportamiento.
Este es el session bean:
Código:
Desde un servlet llamo al método sumar del bean:@Stateless public class HolaMundoBean implements IHolaMundoLocal { private int numero = 1; @Override public int sumar(Integer numero) { this.numero += numero; return this.numero; } }
Código:
Y el resultado es 3, 6, 10. Según lo que yo entiendo, como el bean no mantiene el estado, los resultados deberían ser 3, 4, 5out.println("<h1>La suma es: " + holaMundo.sumar(2) + "</h1>"); out.println("<h1>La suma es: " + holaMundo.sumar(3) + "</h1>"); out.println("<h1>La suma es: " + holaMundo.sumar(4) + "</h1>");
Si el bean lo coloco como un @Stateful, obtengo el mismo resultado.
¿Qué es lo que estoy haciendo mal o no he entendido?
Gracias desde ya por su tiempo y ayuda.