(CC) Lilian Wong |
(Pensaba que podían llamarse desde un Servlet o desde un EJB Stateless (Stateless Session Bean, SLSB) y que automágicamente diferenciaran entre los navegadores que están accediendo la aplicación Web. Pero no es así.)
Conclusiones
- El cliente de un SFSB debe guardar la referencia, para poder acceder a la misma instancia.
- Una referencia a un SLSB no garantiza que se acceda a la misma instancia, pues el servidor típicamente tiene un pool.
- Si el cliente es la capa web (un Servlet, una JSP), se recomienda guardar la referencia en la sesión web.
- No es útil ejecutar un SFSB desde un SLSB, pues la instancia que usará será nueva.
- No se debe inyectar (EJB 3) un SFSB en un SLSB, pues clientes diferentes accederan al SLSB pero estarán accediendo al mismo SFSB.
Referencias
- A: Java EE 6: How to call Stateful Session Bean from Stateless Session Bean?
- Simple Stateful
- A: Issue with stateful EJB - keeps one session for all users
- Session Beans
- A: JSF request scoped bean keeps recreating new Stateful session beans on every request?
- More about beans / Session beans