Duda con bean de sesion con estado
Estoy intentando aprender como se manejan los bean con estado y me consegui con este código que tal cual como esta corre perfecto pero tengo una duda de como pasarlo a ejb 3.0. Por lo que entiendo en el cliente se obtine la referencia a la interfaz home y luego invoco al método create sin argumentos y luego se invoca el ejbcreate. Lo que no me queda claro es que sustituye al método create en ejb 3.0. Por lo que entiendo el método PostConstruct es invocado luego de la inyeccion de dependencia. Si alguien sabe alguna página donde exista un ejercicio similar a este que use ejb 3.0 o me pueda resolver la duda, que en si es como mantener el estado del bean, se lo agradeceria.
interfaz home
public Calculadora create() throws
javax.ejb.CreateException, java.rmi.RemoteException;
public Calculadora create(double resultado) throws
javax.ejb.CreateException, java.rmi.RemoteException;
Bean con estado
public void ejbCreate(double resultado) throws javax.ejb.CreateException
{
this.resultado= resultado;
}
public void add(double num1){
resultado+= num1;
}
public void setResult(double result){
this.resultado= resultado;
}
cliente
Calculator cal = home.create();
cal.setResult(2);
cal.add(8);
En ejb 3.0 parte del código seria algo como esto
Interfaz Local
@Local
public interface calculadoralocal{
public void add(double num1);
public void setResult(double result);
public void mantener(double resultado);
}
Bean
@Stateful
public class calculadora implements calculadoralocal{
public void add(double num1){
resultado+= num1;
}
public void setResult(double result){
this.result = result;
}
@PostConstruct
public void mantener(double resultado){
this.resultado= resultado;
}
}
cliente
public class cliente{
@EJB
public static calculadoralocal cal;
cal.setResult(2);
cal.add(8);
cal.mantener(cal.getResultado);
}
Yo pienso que debe ser algo como esto. Pero la verdad no entiendo bien como funcionan los métodos de ciclo de vida. Agradeciria si alguien me explica esto.
- Inicie sesión o regístrese para enviar comentarios
Re: Duda con bean de sesion con estado
En EJB 3 se puede utilizar la anotación @javax.ejb.Init como reemplazo del método ejbCreate. Búscate una guía de anotaciones para EJB 3.0, hay muchas.
Saludos
Javier Castañón