lunes, 30 de enero de 2012

Hacer deploy una aplicación GX9+Java+Apache

Estos son los pasos para poder compilar una aplicación Genexus utilizando el generador de Java corriendo sobre Apache Tomcat utilizando una base de datos MySQL.

Una vez que tengamos nuestro modelo pronto para ser compilado, presionamos la tecla F5, la cual nos lleva a la siguiente ventana:


En esta ventana podemos ver una lista con varios items que corresponden a las diferentes opciones de nuestra aplicación.
En el primer item veremos "WinDeveloperMenu", lo seleccionamos y hacemos click en el botón Execute.
Inmediatamente se mostrará esta ventana:


Hacemos click en el menú Utilities y elegimos la opción "Deployment Wizard", nos saldrá otra ventana como esta:


En esta ventana podemos ver dos listas, en la lista de la izquierda, se encuentran todos los objetos de nuestra aplicación que tienen la propiedad "Main Program = True".  En nuestro caso tenemos el objeto Inicio que es un web panel.  Entonces debemos seleccionar nuestro objeto main, y hacer click en la flecha que apunta hacia la derecha para poder realizar el deploy del resto de la aplicación.
Hecho esto seguimos a la siguiente ventana del asistente, nos volverá a salir una pantalla como esta:



En este apso simplemente pasaremos a la siguiente pantalla sin modificar nada.


En esta otra pantalla del asistente debemos activar la opción "Transfer location files", ya que se deben copiar los archivos compilados por genexus a la carpeta de la aplicación.  En modo de transferencia tenemos dos opciones, la primera es la copia por FTP, simplemente hay que escribir la ruta de la carpeta donde vamos a hacer deploy, el nombre del host, el usuario y la contraseña.
La segunda opción es la copia en el equipo local, es decir, hay que indicarle al asistente la ruta donde se guardan las aplicaciones, en este caso en la carpeta "webapps" dentro del directorio de instalación de Apache Tomcat.
Este es el último paso antes de realizar el deploy, hacemos click en Finish, al finalizar el asistente se nos abrirá otra ventana donde se nos pedirá configurar la aplicación para hacer War Deployment.


Los servlets pueden ser ejecutados por motores de servlets (Tomcat, Resin, Jrun, etc.), o por servidores J2EE (WebSphere, BEA Weblogic, etc.).

Configurar en forma adecuada los distintos motores de servlets o servidores J2EE, para ejecutar las aplicaciones web Java, tiene cierta complejidad, se necesita conocer en cual directorio deben ir los servlets, en cual directorio deben ir los archivos adicionales (driver JDBC, classes adicionales, etc.) y dónde colocar el contenido estático. Además, una vez que se hace funcionar todo en un ambiente de prototipo hay que llevarlo a producción, es decir, configurar todo esto en el cliente. Entonces, el generador Java provee el War Deployment, que es un ‘output processor’ del Deployment Wizard, que permite empaquetar en un solo archivo, todo lo necesario, para la instalación y ejecución de una aplicación web Java, en los distintos motores de servlets, o servidores J2EE, de forma sencilla.

El War Deployment genera archivos con extensión .WAR (Web Archive Resource), los cuales son básicamente archivos .JAR a los cuales se les cambia la extensión a .WAR. Estos archivos empaquetan servlets, contenido estático, librerías adicionales y un archivo con formato xml, al cual se le llama descriptor, que contiene cierta información de la aplicación web como por ejemplo el nombre de la aplicación, nombre de los servlets, mapeos, etc.).
Las opciones son:

Location
Aquí se debe seleccionar el Location para el cual se quiera armar el .WAR. En caso de tratarse de un .WAR para una aplicación web se debe seleccionar el Location <Client>; el resto de los locations son para el caso de querer distribuir las clases necesarias para ejecutar el servidor de aplicaciones en un aplicación en 3 capas con protocolo HTTP.
Deploy this Location
Sirve para confirmar que se desea armar un .WAR para la Location actualmente seleccionado.
Descriptor Type
Aquí se debe seleccionar el motor de servlets que se va a utilizar y en función de ello se arma el descriptor correspondiente (se profundiza  más adelante), en mi caso utilizo Generic Servlet v2.2
Web Application Name
Este es el nombre que identifica a la aplicación web. Para algunos motores de servlets va a ser utilizado luego en la URL para invocar los servlets.
Additional Libraries
Aquí se deben agregar todos las librerías adicionales para ejecutar la aplicación; el caso más común es el de los drivers JDBC.
Additional Files
Esta es una estructura de directorios (que por defecto es vacía) en la cual se puede agregar todo el contenido estático que se necesite para ejecutar la aplicación.
Add Directory
Permite agregar un directorio a la estructura de directorios de Additional Files.
Remove Directory
Permite borrar un directorio a la estructura de directorios de Additional Files.
Add Files
Permite agregar un contenido estático a los Additional Files en el directorio seleccionado.
Remove Files
Permite borrar un contenido estático antes agregado en los Additional Files.

En la otra pestaña (Deployment descriptor), se edita el descriptor del .WAR a generarse, en formato XML.



Las opciones son:

Use Custom Deployment Descriptor
Al chequear esta opción se permite modificar el descriptor por defecto
Get Default
Vuelve a obtener el descriptor por defecto
Validate
Valida el XML del descriptor en caso de haberlo modificado.

Eso es todo lo necesario para realizar un deploy de la aplicación que desarrollamos.
Notar que cuando se haga algún cambio en genexus en algún objeto, no es necesario realizar el deploy, ya que cuando se compila, genexus reemplaza todos los archivos que están dentro de la carpeta de servlets de java; solamente cuando se agrega un nuevo objeto en genexus sí es necesario que se realize un nuevo deploy, o en su defecto, que se modifique el archivo web.xml y se agregen las líneas correspondientes.

Espero que este tutorial haya servido de ayuda.


No hay comentarios:

Publicar un comentario