martes, 24 de noviembre de 2009

llamar un ejb desde un jsp

bueno llamar un ejb desde un servlet es sumamente facil y es una
de las facilidades que nos proporciona la version ejb 3 , pero desde
un jsp no es lo mismo puesto que hay que llamarlo mediante JNDI
(igual no es complicado)

primero vamos a crear nuestro ejb.


package ejb;

import javax.ejb.Remote;

@Remote
public interface saludoRemote {

public String saludo();
}

------------------------------------

package ejb;

import javax.ejb.Stateless;

@Stateless(name="saludoRemote")
public class saludoBean implements saludoRemote {

public String saludo() {

return "hola desde ejb";
}
}

asi nos queda el proyecto

ahora vamos a nuestro proyecto web



bueno desde un servlet solamente tenemos que llamarlo mediante
la opcion del boton derecho insert code->call enterprise bean
y seleccionamos nuestro ejb y nos genera el siguiente codigo

@EJB
private saludoRemote saludoBean;

el @EJB nos ahorra utilizar jndi, ademas este llamado tiene
que ser afuera de cualquier metodo de la clase servlet.

otra observacion que encontre en la red es la implementacion
distinta en el servidor glassfish y JBoss en el momento de ocupar
lookup en distintos servidores.

ejemplo: para jboss

Context context = new InitialContext();
HelloWorld helloWorld = (HelloWorld) context.lookup("HelloWorldBean/remote");

ejemplo: para glassfish

Context context = new InitialContext();
HelloWorld helloWorld = (HelloWorld) context.lookup(HelloWorld.class.getName());

No hay comentarios: