Sei sulla pagina 1di 13

07/05/2012 Pgina 1

EJB con Eclipse y JBoss


Hola mundo

Tutorial paso a paso de EJB
con Eclipse y JBoss
https://www.facebook.com/groups/ebooksforjava/

07/05/2012 Pgina 2
Instalacin de requisitos
Eclipse Indigo IDE for Java EE Developers
1 Nos descargamos
Eclipse Indigo IDE for Java
EE Developers de la si-
guiente direccio n:
http://www.eclipse.org/
downloads/
Descomprimir el contenido
del archivo en c:\eclipse
Jboss AS7.1.1 Final
2 Descargamos
Jboss AS7.1.1
Final de
http://
www.jboss.org/
jbossas/downloads/
Descomprimir el
contenido del archi-
vo en c:\JBoss
Arrancamos el servidor ejecutando el
archivo C:\JBoss\bin\standalone.bat.
Escribimos en el navegador la siguiente
direccio n http://localhost:8080 Debe-
ramos ver la siguiente pantalla.
Probar que el servidor est instalado correctamente
https://www.facebook.com/groups/ebooksforjava/

07/05/2012 Pgina 3
Instalacin de requisitos
JBoss tools
3 Abrimos el market-place de
Eclipse (Help->Eclipse Market-
place) y escribimos Jboss en el
cuadro de bu squeda. Instalamos
Jboss tools para indigo.

4 Vamos a pestan a de servidores (Window->Show View->Servers) y hacemos click en new server wizard
y lo configuramos con las siguientes opciones:
https://www.facebook.com/groups/ebooksforjava/

07/05/2012 Pgina 4
Creacin de usuarios en el servidor
Usuario de administracin
1 Creamos un usuario para la consola de administracio n. Para ello ejecutamos el script
c:\Jboss\bin\add-user.bat
2 Creamos otro usuario ejecutando otra vez el script c:\Jboss\bin\add-user.bat
Comprobamos la consola de administracio n. Abrimos el navegador y escribimos la siguiente direccio n:
http://localhost:9990. Ingresamos las credenciales del usuario que acabamos de crear:

Username: admin
Password: 0123
Consola de administracin
Tipo de usuario: <a> Management user
Realm: La dejamos por defecto
Username: admin
Password: 0123
Usuario de aplicacin
Tipo de usuario: <b> Application User
Realm: La dejamos por defecto
Username: cliente
Password: cliente0123
https://www.facebook.com/groups/ebooksforjava/

07/05/2012 Pgina 5
Creacin del Bean
Proyecto
1 Creamos un Nuevo proyecto EJB (File->new->EJB Project) y le llamamos HolaMundo-
Bean. Rellenamos los campos con las siguientes opciones:
2 Creamos una interface nueva dentro del paquete com.saludo y la llamamos HolaMundoHome. Escribimos
dentro el siguiente co digo e ignoramos los errores.
Interface Home
package com.saludo;
import java.rmi.RemoteException;
import javax.ejb.CreateException;
import javax.ejb.EJBHome;
public interface HolaMundoHome extends EJBHome
{
HolaMundoRemote create() throws Re-
moteException, CreateException;
https://www.facebook.com/groups/ebooksforjava/

07/05/2012 Pgina 6
Creacin del Bean
Interface Remote
4 Creamos una segunda interface tambie n dentro del paquete com.saludo y la llamamos HolaMundoRemo-
te. Escribimos dentro el siguiente co digo:
Bean
package com.saludo;
import java.rmi.RemoteException;
import javax.ejb.EJBException;
import javax.ejb.SessionBean;
import javax.ejb.SessionContext;
public class HolaMundoBean implements SessionBean{
private static fnal 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 {}
}
5 Creamos una nueva clase
que llamaremos HolaMundo-
Bean y escribimos dentro el
siguiente co digo:
package com.saludo;
import java.rmi.RemoteException;
import javax.ejb.EJBObject;
public interface HolaMundoRemote extends
EJBObject{
public String saludo(String nombre) throws
RemoteException;
}
https://www.facebook.com/groups/ebooksforjava/

07/05/2012 Pgina 7
Creacin del Bean
Descriptor de despliegue
6 Modificamos el descriptor de
despliegue. Para ello hacemos
click con el boto n derecho del ra-
to n sobre Deployment Descriptor:
HolaMundoBean en la pestan a Pro-
ject Explorer de Eclipse y seleccio-
namos Open with-> text editor.
<?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>
Escribimos el siguiente co digo:
https://www.facebook.com/groups/ebooksforjava/

07/05/2012 Pgina 8
Desplegando el Bean en el servidor
1 Vamos a la pestan a de
servidores (Window->Show
view->servers). Hacemos click
con el boto n derecho del rato n
sobre el servidor que configu-
ramos antes JBoss 7.1 Runtime
Server y hacemos click en Add
and remove
An adimos nuestro proyecto al servidor:
https://www.facebook.com/groups/ebooksforjava/

07/05/2012 Pgina 9
Desplegando el Bean en el servidor
Ahora veamos si el Bean ha sido desplegado correctamente. Iniciamos el servidor desde fuera de Eclipse eje-
cutando C:\JBoss\bin\standalone.bat y entramos en el panel de administracio n desde el navegador local-
Comprobar que el Bean ha sido desplegado correctamente
https://www.facebook.com/groups/ebooksforjava/

07/05/2012 Pgina 10
Creacin de la aplicacin cliente
1 Creamos un nuevo proyecto File->New
Application Client Project. Lo llamamos Cliente
y seleccionamos las siguientes opciones:
2 An adimos la librera de
cliente de jboss
(c:\jboss\bin\client\jboss-
client.jar). Para ello pulsamos el
boto n derecho del rato n encima
del nombre de nuestro proyecto
en el Project Explorer de Eclipse
y seleccionamos Build Path->
configure build path An adimos
la librera como external jar.
En la pestan a Projects an adimos
el proyecto que creamos antes,
el del Bean (es necesario que el
proyecto este abierto en Eclipse
para que se pueda incluir).
https://www.facebook.com/groups/ebooksforjava/

07/05/2012 Pgina 11
Creacin de la aplicacin cliente
3 Ahora creamos una clase que se llame BeanCliente dentro del paquete com.saludo y escribimos el
siguiente co digo:
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);
}
}
https://www.facebook.com/groups/ebooksforjava/

07/05/2012 Pgina 12
Creacin de la aplicacin cliente
4 Creamos un archivo en el proyecto que se llame jboss-ejb-client.properties y escribimos dentro
el siguiente co digo:
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
https://www.facebook.com/groups/ebooksforjava/

07/05/2012 Pgina 13
Ejecucin
1 Iniciamos JBoss c:\JBoss\bin\standalone.bat
2 Ejecutamos la aplicacio n cliente desde Eclipse como una aplicacio n normal de java
3 Deber amos obtener el siguiente resultado
https://www.facebook.com/groups/ebooksforjava/