Je vais dans Java EE 6 tutoriel et je suis en train d'essayer de comprendre la différence entre stateless et stateful session beans. Si beans de session sans état ne conservent pas leur état entre les appels de méthode, pourquoi mon programme est en agissant de cette manière?
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++;
}
}
Le client
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());
}
}
Je m'attendais à getNumber pour revenir à 0 à chaque fois mais il est de retour 1 et recharge de la servlet dans mon navigateur l'augmenter davantage. Le problème, c'est avec ma compréhension de la façon dont stateless beans de session de travail et non pas avec les bibliothèques ou de serveur d'applications, bien sûr. Quelqu'un peut-il me donner un simple hello world exemple type d'un bean session sans état qui se comporte différemment lorsque vous la changez pour stateful?