Sie sind auf Seite 1von 13

EJB con Eclipse y JBoss

Hola mundo
Tutorial paso a paso de EJB
con Eclipse y JBoss

07/05/2012

Pgina 1

Instalacin de requisitos
Eclipse Indigo IDE for Java EE Developers

Nos descargamos
Eclipse Indigo IDE for Java
EE Developers de la siguiente direccion:
http://www.eclipse.org/
downloads/
Descomprimir el contenido
del archivo en c:\eclipse

Jboss AS7.1.1 Final

Descargamos
Jboss AS7.1.1
Final de
http://
www.jboss.org/
jbossas/downloads/
Descomprimir el
contenido del archivo en c:\JBoss

Probar que el servidor est instalado correctamente

Arrancamos el servidor ejecutando el


archivo C:\JBoss\bin\standalone.bat.
Escribimos en el navegador la siguiente
direccion http://localhost:8080 Deberamos ver la siguiente pantalla.

07/05/2012

Pgina 2

Instalacin de requisitos
JBoss tools

Abrimos el market-place de
Eclipse (Help->Eclipse Marketplace) y escribimos Jboss en el
cuadro de busqueda. Instalamos
Jboss tools para indigo.

Vamos a pestana de servidores (Window->Show View->Servers) y hacemos click en new server wizard
y lo configuramos con las siguientes opciones:

07/05/2012

Pgina 3

Creacin de usuarios en el servidor


Usuario de administracin

Creamos un usuario para la consola de administracion. Para ello ejecutamos el script


c:\Jboss\bin\add-user.bat

Tipo de usuario:

<a> Management user

Realm:

La dejamos por defecto

Username:

admin

Password:

0123

Usuario de aplicacin

Creamos otro usuario ejecutando otra vez el script c:\Jboss\bin\add-user.bat

Tipo de usuario:

<b> Application User

Realm:

La dejamos por defecto

Username:

cliente

Password:

cliente0123

Consola de administracin
Comprobamos la consola de administracion. Abrimos el navegador y escribimos la siguiente direccion:
http://localhost:9990. Ingresamos las credenciales del usuario que acabamos de crear:
Username:
Password:

07/05/2012

admin
0123

Pgina 4

Creacin del Bean

Proyecto
Creamos un Nuevo proyecto EJB (File->new->EJB Project) y le llamamos HolaMundoBean. Rellenamos los campos con las siguientes opciones:

Interface Home

Creamos una interface nueva dentro del paquete com.saludo y la llamamos HolaMundoHome. Escribimos
dentro el siguiente codigo e ignoramos los errores.

package com.saludo;
import java.rmi.RemoteException;
import javax.ejb.CreateException;
import javax.ejb.EJBHome;
public interface HolaMundoHome extends EJBHome
{
HolaMundoRemote create() throws RemoteException, CreateException;

07/05/2012

Pgina 5

Creacin del Bean

Interface Remote
Creamos una segunda interface tambien dentro del paquete com.saludo y la llamamos HolaMundoRemote. Escribimos dentro el siguiente codigo:

package com.saludo;
import java.rmi.RemoteException;
import javax.ejb.EJBObject;
public interface HolaMundoRemote extends
EJBObject{
public String saludo(String nombre) throws
RemoteException;
}

Bean
package com.saludo;
import java.rmi.RemoteException;
import javax.ejb.EJBException;
import javax.ejb.SessionBean;
import javax.ejb.SessionContext;

Creamos una nueva clase


que llamaremos HolaMundoBean y escribimos dentro el
siguiente codigo:

public class HolaMundoBean implements SessionBean{


private static final long serialVersionUID = 1L;// Quita warning de serializacin del objeto
// Nuestro mtodo "de negocio"
public String saludo(String nombre){
System.out.println("Un cliente me ha invocado");
return "Hola, " + nombre;
}
// Mtodos del ciclo de vida del Bean (obligatorios)
public void ejbCreate(){}
public void ejbActivate() throws EJBException, RemoteException {}
public void ejbPassivate() throws EJBException, RemoteException {}
public void ejbRemove() throws EJBException, RemoteException {}
public void setSessionContext(SessionContext arg0) throws EJBException, RemoteException {}
}

07/05/2012

Pgina 6

Creacin del Bean


Descriptor de despliegue

Modificamos el descriptor de
despliegue. Para ello hacemos
click con el boton derecho del raton sobre Deployment Descriptor:
HolaMundoBean en la pestana Project Explorer de Eclipse y seleccionamos Open with-> text editor.

Escribimos el siguiente codigo:

<?xml version="1.0"?>
<!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD
Enterprise JavaBeans 2.0//EN" "http://java.sun.com/j2ee/dtd/ejb-jar_2_0.dtd">
<ejb-jar>
<description>Ejemplo de EJB Simple</description>
<enterprise-beans>
<session>
<display-name>Bean HolaMundo</display-name>
<ejb-name>HolaMundo</ejb-name>
<home>com.saludo.HolaMundoHome</home>
<remote>com.saludo.HolaMundoRemote</remote>
<ejb-class>com.saludo.HolaMundoBean</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Bean</transaction-type>
</session>
</enterprise-beans>
</ejb-jar>

07/05/2012

Pgina 7

Desplegando el Bean en el servidor

Vamos a la pestana de
servidores (Window->Show
view->servers). Hacemos click
con el boton derecho del raton
sobre el servidor que configuramos antes JBoss 7.1 Runtime
Server y hacemos click en Add
and remove

Anadimos nuestro proyecto al servidor:

07/05/2012

Pgina 8

Desplegando el Bean en el servidor

Comprobar que el Bean ha sido desplegado correctamente

Ahora veamos si el Bean ha sido desplegado correctamente. Iniciamos el servidor desde fuera de Eclipse ejecutando C:\JBoss\bin\standalone.bat y entramos en el panel de administracion desde el navegador local-

07/05/2012

Pgina 9

Creacin de la aplicacin cliente

Creamos un nuevo proyecto File->New


Application Client Project. Lo llamamos Cliente
y seleccionamos las siguientes opciones:

Anadimos la librera de
cliente de jboss
(c:\jboss\bin\client\jbossclient.jar). Para ello pulsamos el
boton derecho del raton encima
del nombre de nuestro proyecto
en el Project Explorer de Eclipse
y seleccionamos Build Path->
configure build path Anadimos
la librera como external jar.
En la pestana Projects anadimos
el proyecto que creamos antes,
el del Bean (es necesario que el
proyecto este abierto en Eclipse
para que se pueda incluir).

07/05/2012

Pgina 10

Creacin de la aplicacin cliente

Ahora creamos una clase que se llame BeanCliente dentro del paquete com.saludo y escribimos el
siguiente codigo:

package com.saludo;
import java.util.Properties;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.rmi.PortableRemoteObject;
import com.saludo.HolaMundoHome;
import com.saludo.HolaMundoRemote;
public class BeanCliente {
public static void main(String ar[]) throws Exception
{
String
JBOSS_CONTEXT="org.jboss.naming.remote.client.InitialContextFactory";;
Properties props = new Properties();
props.put(Context.INITIAL_CONTEXT_FACTORY, JBOSS_CONTEXT);
props.put(Context.PROVIDER_URL, "remote://localhost:4447");
props.put(Context.SECURITY_PRINCIPAL, "cliente");
props.put(Context.SECURITY_CREDENTIALS, "cliente0123");
Context context = new InitialContext(props);
HolaMundoRemote
remote=(HolaMundoRemote)context.lookup("//HolaMundoBean/HolaMundo!com.saludo.HolaMundoRemote");
String a = (String)remote.saludo("paco");
System.out.println(a);
}
}

07/05/2012

Pgina 11

Creacin de la aplicacin cliente

Creamos un archivo en el proyecto que se llame jboss-ejb-client.properties y escribimos dentro


el siguiente codigo:

endpoint.name=client-endpoint
remote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED=false
remote.connections=default
remote.connection.default.host=localhost
remote.connection.default.port = 4447
remote.connection.default.connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS=false
remote.connection.default.username=cliente
remote.connection.default.password=cliente0123

07/05/2012

Pgina 12

Ejecucin

Iniciamos JBoss c:\JBoss\bin\standalone.bat

Ejecutamos la aplicacion cliente desde Eclipse como una aplicacion normal de java

Deberamos obtener el siguiente resultado

07/05/2012

Pgina 13

Das könnte Ihnen auch gefallen