Beruflich Dokumente
Kultur Dokumente
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
Descargamos
Jboss AS7.1.1
Final de
http://
www.jboss.org/
jbossas/downloads/
Descomprimir el
contenido del archivo en c:\JBoss
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
Tipo de usuario:
Realm:
Username:
admin
Password:
0123
Usuario de aplicacin
Tipo de usuario:
Realm:
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
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
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;
07/05/2012
Pgina 6
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.
<?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
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
07/05/2012
Pgina 8
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
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
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
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
Ejecutamos la aplicacion cliente desde Eclipse como una aplicacion normal de java
07/05/2012
Pgina 13