Creación y Despliegue de un EJB básico en Orión
He estado probando el servidor de aplicaciones Orion y la verdad es que es
muy sencillito.
Una de las principales ventajas de las que me han hablado, es que si te lo
montas en local y respetas la estructura de ficheros que te propone, puedes
crear servlets y EJBs y probarlos sin necesidad de desplegarlos.
Lo que he hecho ha sido seguir la guía para la creación de un EJB básico y
me he quedado francamente impresionado porque, y es una de las pocas veces en mi
vida, que siguiendo las instrucciones y sin trucos y dar por hecho que sabes
ademas 150 millones de cosas más, he conseguido poner el sistema en marcha en
menos de una hora
Vamos a ir pasito a pasito:
Primero nos lo descargamos y lo instalamos. Al instalarlo tenemos que
ejecutar un comando para introducir la password
•Instalar el
JSDK de JAVA |
Asegurarse de tener la variable de entorno JAVA_HOME apuntando al directorio de instalación de Java |
Descargarse ORION de www.orionserver.com Descomprimir el fichero en un directorio |
Ejecutar el comando (añadir password) Java –jar orion.jar –install |
Arrancar el servidor con Java –jar orion.jar
|
Para probar instalación, desde una navegador, atacar al servidor.
El puerto por defecto es el 80, si se desea cambia, ir al fichero y cambiar el parámetro
|
La estructura de ficheros que vamos a construir es:
|
Creamos el interfaz de nuestro EJB (ejemplorc.java)
package ejemplorc.ejb;
import
java.rmi.*;
import
javax.ejb.*;
public
interface ejemplorc extends EJBObject
{
public String muestraMensaje() throws RemoteException;
}
|
Creeamos el Bean (ejemplorcBean.java)
package ejemplorc.ejb; import java.rmi.*; public class ejemplorcBean extends Object implements SessionBean { public String muestraMensaje() { public void ejbCreate() public void ejbActivate() public void ejbPassivate() public void ejbRemove() public void setSessionContext(SessionContext context) }
|
Creamos el Interfaz Home (ejemplorcHome.java)
package ejemplorc.ejb; import java.rmi.*; public interface ejemplorcHome extends EJBHome {
|
Creamos el descriptor del EJB (ejb-jar.xml)
<?xml version=»1.0″?> <ejb-jar> <assembly-descriptor> </ejb-jar> |
Creamos el Servlet que atacará al EJB (aunque ya veremos en otra ocasión que no es el modo más adecuado). Advertencia: Usad este código para probar que funciona …. para nada más …. porque no es muy adecuado el modo en que se crea el objeto (compraos un libro de EJB´s) (ejemplorcServlet.java) package ejemplorc.web; import java.io.IOException; import ejemplorc.ejb.*; public class ejemplorcServlet extends HttpServlet // constructor // A reference to the remote `Hello’ object // Initializes this servlet // Get the initial JNDI context using our settings // Get a reference to the Hello home interface try // Get a reference to a Hello instance // Insanity check: Make sure we have a valid reference // Handles the HTTP GET request ServletOutputStream out = response.getOutputStream(); response.setContentType(«text/html»); // Get the answer from the bean out.println(«<HTML><BODY bgcolor=\»#FFFFFF\»>»); // Displays a trace message to System.out } |
Ahora definimos la Web App (web.xml)
<?xml version=»1.0″?> <application> <!– The display-name element specifies the human-readable name of this <display-name>ejemplorc</display-name>
<!– The EJB module. All that needs to be specified is the location of the <module>
<!– The web module. The context-root specifies how the web-application can <module> </application> |
Definimos con el Build para Ant (que obviamente debemos tener instalado y la variable ANT_HOME apuntando al directorio de Instalación) (build.xml) <?xml version=»1.0″?> <!– Build file for ‘ejemplorc’, a sample J2EE application which is part of the Version: $Revision: 4.12 $ $Date: 2001/06/27 10:36:29 $ –> <project name=»ejemplorc» default=»ear» basedir=».»>
<!– ================================================================== –> <target name=»init»> <property name=»ejb.jar» value=»${orion.dir}/ejb.jar» /> <property name=»ejb-classes.dest» value=»${lib.dir}/ejb» /> <property name=»ejb.classpath» value=»${ejb.jar}» /> <property name=»pkg-dist.name» value=»${name}-pkg» /> <property name=»deploy.ormi» value=»»/>
<!– ================================================================== –> <target name=»clean» depends=»init»>
<!– ================================================================== –> <target name=»prepare» depends=»init»>
<!– ================================================================== –> <target name=»ejb-classes» depends=»prepare»> <target name=»ejb-meta-inf» depends=»prepare»> <target name=»ejb-jar» depends=»ejb-classes,ejb-meta-inf»>
<!– ================================================================== –> <target name=»web-classes» depends=»prepare»> <target name=»web-web-inf» depends=»prepare»> <target name=»war» depends=»web-classes,web-web-inf»>
<!– ================================================================== –> <target name=»j2ee-meta-inf» depends=»prepare»> <target name=»ear» depends=»ejb-jar,war,j2ee-meta-inf»>
<!– ================================================================== –> <target name=»pkg-dist» depends=»prepare»> <mkdir dir=»${build.dir}/${name}» /> <copy todir=»${build.dir}/${name}»> <tar tarfile=»${build.dir}/${pkg-dist.name}.tar» <gzip src=»/wp-content/uploads/tutorial-data/${build.dir}/${pkg-dist.name}.tar» <delete file=»${build.dir}/${pkg-dist.name}.tar» /> <zip zipfile=»${build.dir}/${pkg-dist.name}.zip» <delete dir=»${build.dir}/${name}» />
<!– ================================================================== –> <target name=»all» depends=»ear,pkg-dist» />
<!– ================================================================== –> <target name=»deploy» depends=»all»> </project> |
Ir al directorio donde esta el Build.xml y ejecutar Ant.exe |
Ahora damos de alta la Web App en (orion/config/default-web-site.xml)
<?xml version=»1.0″?> <application-server <global-application name=»default» path=»application.xml» /> <global-web-app-config path=»global-web-application.xml» /> <!– Compiler, activate this to specify an alternative compiler such <application name=»ejemplorc» path=»C:\orion\ejemplorc\build\ejemplorc.ear» /> </application-server>
|
Nos generará la estructura de ficheros auxiliar y el EAR destino
|
Y decimos en el server.xml donde esta el ear
|
Y ya podemos comprobar el resultado
|
Orion también dispone de una consola gráfica para administrar sus ficheros de configuración. Te advierte que esta en alpha, aunque a mi no me ha roto nada. java -jar orion.jar -console
|