WebSphere EJB2
NOTA: Estas instrucciones solo aplican si queremos usar EJB2 (con CMP); si usamos Hibernate o EJB3 JPA podemos desplegar directamente el war que produce OpenXava en el WebSphere. No es aconsejable usar EJB2 para nuevos desarrollos.
OpenXava genera aplicaciones J2EE desplegables en
IBM Websphere Application Server 5.0, 5.1, 6.0 y 6.1.
Hacer esto simplemente requiere ejecutar una tarea ant que genera un EAR compatible con Websphere, no es necesario que toquemos nuestro código Java ni nuestros archivos XML de ninguna manera.
Esto permite desarrollar la aplicación usando JBoss (y por ende de forma ágil) y cuando esté lista para producción desplegarla en Websphere y por supuesto probarla a fondo.
En este documento se va dar una guía de como desplegar una aplicación OpenXava en Websphere. Si todavía no tienes ninguna es mejor que sigas primero el tutorial de OpenXava y así tendrás MiEscuela.ear.
Las siguientes instrucciones funcionan con Websphere 5.0, 5.1 y 6.0. En el ejemplo nos conectamos a un AS/400, pero conectarse a cualquier otra base de datos no tiene complicación.
Crear una aplicación J2EE compatible con Websphere
Abre tu Eclipse y haz que apunte al
workspace que viene con la distribución de OpenXava.
- Edita MiEscuela/build.xml y haz que la variable configuration valga websphere-as400.
- Regenera código, con la tarea ant MiEscuela.regenerarEJB.
- Compilalo, pulsando Build.
- Ejecuta la tarea ant MiEscuela.crearEarWebsphere.
Y ya tienes en MiEscuela.dist un archivo MiEscuela.ear listo para desplegarse en Websphere.
Instalar Websphere
Este paso corre de tu cuenta. Usando las instrucciones de IBM y como buenamente puedas instalate el servidor de aplicaciones. Instalate también el último nivel de parches disponibles.
Configurar origenes de datos
Abre la consola de administración yendo a
http://localhost:9090/admin (o
http://localhost:9060/admin en el caso de la versión 6).
Primero tienes que crear una entrada J2C, que contiene un alias para un usuario/contraseña que vamos a usar para autentificarnos frente a nuestra base de datos:
- En versión 5/5.1: Ve a Seguridad > Configuración de JAAS > Datos de autentificación J2C.
- En versión 6: Ve a Security > Global Security > JAAS Configuration (on right) > J2C Authentication
- Pulsa Nuevo.
- En el campo Alias pon openxava (u otro que te guste más).
- En el campo Id de usuario pon el nombre de un usuario de tu base de datos.
- En el campo Contraseña pon la contraseña de ese usuario.
- Pulsa Aceptar.
- Pulsa Guardar que te llevará a otra página en donde tienes que pulsar un botón Guardar.
Damos de alta el controlador JDBC:
- Ve a Recursos > Proveedores JDBC.
- Pulsa Nuevo.
- En versión 5/5.1
- En el campo Proveedores JDBC escoge DB2 UDB for iSeries (Toolbox XA), o el correspondiente a tu base de datos, pero la versión XA.
- Pulsa Aplicar.
- En el campo Classpath pon la ruta del controlador JDBC (incluyendo el nombre del jar).
- Pulsa Aplicar.
- In version 6:
- Paso 1: Escoge DB2 (o el adecuado para tu base de datos).
- Paso 2: DB2 UDB for iSeries (Toolbox) (o el adecuado para tu base de datos).
- Paso 3: Origen de datos XA (siempre este).
- Pulsa Siguiente.
- En el campo Classpath pon la ruta del controlador JDBC (incluyendo el nombre del jar).
- Pulsa Aplicar.
Damos de alta el origen de datos de OpenXava:
- Pulsa en Origenes de datos (está abajo del todo).
- Pulsa Nuevo.
- En el campo Nombre pon OpenXavaDS
- En el campo Nombre JNDI pon jdbc/OpenXavaDS
- En el campo Alias de autenticación gestionado por componentes escoge xxxx/openxava.
- En el campo Alias de autenticación gestionado por contenedor escoge xxxx/openxava.
- En versión 5/5.1:
- Pulsa Aplicar.
- Pulsa Propiedades personalizadas, esto te lleva a otra página.
- Pulsa serverName y en el campo Valor pon la IP de tu AS/400 (esto solo para AS/400).
- Pulsa Aceptar.
- In versión 6:
- En el campo serverName pon la IP de tu AS/400 (esto solo para AS/400).
- Pulsa Aceptar.
Damos de alta el origen de datos para tu aplicación:
- Ve a Origines de datos.
- Pulsa Nuevo.
- En el campo Nombre pon MySchoolDS
- En el campo Nombre JNDI pon jdbc/MySchoolDS
- Marca la casilla de chequeo de Persistencia gestionada por contenedor.
- En el campo Alias de autenticación gestionado por componentes escoge xxxx/openxava.
- En el campo Alias de autenticación gestionado por contenedor escoge xxxx/openxava.
- En versión 5/5.1:
- Pulsa Aplicar.
- Pulsa Propiedades personalizadas, esto te lleva a otra página.
- Pulsa serverName y en el campo Valor pon la IP de tu AS/400 (esto solo para AS/400).
- Pulsa Aceptar.
- In versión 6:
- En el campo serverName pon la IP de tu AS/400 (esto solo para AS/400).
- Pulsa Aceptar.
- Pulsa Guardar que te lleva a otra página y ahí pulsa el botón Guardar que está abajo.
Comprobamos los origines de datos:
- Ve a Recursos > Proveedores JDBC.
- Pulsa DB2 UDB for iSeries.
- Pulsa en Origines de datos (está abajo del todo).
- Selecciona las 2 que acabas de crear.
- Pulsa el botón Conexión de prueba.
Si el mensaje es satisfactorio hemos concluido bien este paso.
Crear tablas en la base de datos
Ejecuta el siguiente script contra tu DB:
CREATE COLLECTION OPENXAVA;
CREATE TABLE OPENXAVA.TABUSERPREFERENCES
(OID INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 0) NOT NULL PRIMARY KEY,
USER VARCHAR(20),
TAB VARCHAR(100),
PROPERTIESNAMES VARCHAR(512));
CREATE INDEX OPENXAVA.TABUSERPREFERENCES01
ON OPENXAVA.TABUSERPREFERENCES(USER,TAB);
CREATE COLLECTION MYSCHOOL;
CREATE TABLE MYSCHOOL.TEACHER(ID VARCHAR(5) NOT NULL PRIMARY KEY,NAME VARCHAR(40));
CREATE TABLE MYSCHOOL.PUPIL(NUMBER INTEGER NOT NULL PRIMARY KEY,NAME VARCHAR(40),TEACHER VARCHAR(5));
INSERT INTO MYSCHOOL.TEACHER VALUES('JP','FRANCISCO JAVIER PANIZA LUCAS');
INSERT INTO MYSCHOOL.TEACHER VALUES('MC','M. CARMEN GIMENO ALABAU');
INSERT INTO MYSCHOOL.PUPIL VALUES(1,'LARS',NULL);
INSERT INTO MYSCHOOL.PUPIL VALUES(2,'ANA','JP');
INSERT INTO MYSCHOOL.PUPIL VALUES(3,'LUIS MIGUEL','JP');
INSERT INTO MYSCHOOL.PUPIL VALUES(4,'MIGUEL',NULL);
Instalar aplicación
Para instalar la aplicación:
- Ve a Aplicaciones > Aplicaciones de empresa.
- Pulsa Instalar.
- Pulsa Examinar en el campo Vía de acceso local, y buscar el ear de tu aplicación.
- Pulsa Siguiente.
- Pulsa Siguiente.
- Pulsa Continuar.
- Paso 1: Pulsa Siguiente.
- En version 5/5.1:
- Paso 2: Escoge DB2UDBISERIES o el corersponda a tu DB y pulsa Siguiente.
- En version 6:
- Paso 2: Pulsa Siguiente.
- Paso 3: Escoge DB2UDBISERIES o el corersponda a tu DB y pulsa Siguiente.
- Step 6: Aparece un mensaje de advertencia. Pulsa Continuar.
- Step 8: Aparece un mensaje de advertencia. Pulsa Continuar.
- En los demás pasos pulsa Siguiente, hasta que aparezca Finalizar, pulsalo también.
- Paciencia, a esperar mientras despliega...
- Pulsar Gestionar aplicaciones.
- Pulsar en MiEscuela.
- En Política del cargador de clases WAR escoger Aplicación.
- Pulsar Aplicar.
- Pulsar Módulos Web (está abajo del todo).
- Pulsar MiEscuela.war.
- En el campo Modalidad de cargador de clases poner PADRE_ÚLTIMO.
- Pulsar Aceptar.
- Pulsa Guardar que te lleva a otra página y ahí pulsa el botón Guardar que está abajo.
Ejecutar la aplicación
Ya está todo lista para que ejecutes tu aplicación en Websphere:
También puedes lanzar la prueba JUnit, en tu Eclipse:
- Edita MiEscuela/properties/xava-junit.properties.
- Cambia port=8080 por port=9080.
- Ejecuta la prueba JUnit PruebaProfesores.