Estoy siguiendo el tutorial de Java EE 6 y estoy tratando de entender la diferencia entre beans de sesión sin estado y stateful. Si los beans de sesión sin estado no retienen su estado entre las llamadas al método, ¿por qué mi programa está actuando como está?Enterprise Beans Stateless and Stateful Beans
package mybeans;
import javax.ejb.LocalBean;
import javax.ejb.Stateless;
@LocalBean
@Stateless
public class MyBean {
private int number = 0;
public int getNumber() {
return number;
}
public void increment() {
this.number++;
}
}
El cliente
import java.io.IOException;
import javax.ejb.EJB;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.WebServlet;
import mybeans.MyBean;
import java.io.PrintWriter;
@WebServlet(name = "ServletClient", urlPatterns = { "/ServletClient" })
public class ServletClient extends HttpServlet {
private static final long serialVersionUID = 1L;
@EJB
MyBean mybean;
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
PrintWriter out = response.getWriter();
mybean.increment();
out.println(mybean.getNumber());
}
}
que estaba esperando para volver obtieneNumero 0 cada vez pero vuelve 1 y recargas del servlet en mi navegador aumentarlo más. El problema está en mi comprensión de cómo funcionan los beans de sesión sin estado y no con las bibliotecas o el servidor de aplicaciones, por supuesto. ¿Alguien puede darme un simple ejemplo de hello world type de un bean de sesión sin estado que se comporta de manera diferente cuando lo cambias a stateful?
Relacionado: http://stackoverflow.com/questions/8887140/jsf-request-scoped-bean-keeps-recreating-new-stateful-session-beans-on-every-req Esta respuesta es quizás más simple de entender. Tenga en cuenta que los servlets son básicamente de ámbito de aplicaciones (solo hay 1 instancia de servlet en toda la aplicación que se comparte/reutiliza en todas las solicitudes/sesiones HTTP. – BalusC
hola, primero se incrementa y luego se obtiene el valor .... por lo que no se puede esperar un valor de 0 – rzur2004
Solo quiero agradecerle por preguntar esto, mi problema está solucionado en este momento. No podría haberlo preguntado mejor –