jueves, mayo 29, 2008

Configurar Tomcat 5.5.20 y MYSQL con Genexus

Tomado desde http://fabriciodls.blogspot.com

Tips: Instalación de Tomcat 5.5.20 en Windows para usar con GeneXus Java sin Deployment para MySql

MySQLInstalación de Tomcat 5.5.20 en Windows para usar con GeneXus Java sin Deployment para MySql en 16 pasos.

El presente instructivo, manual o tutorial de Instalación de Tomcat para GeneXus y MySql, no deja de ser algo que a mi me sirvió para instalar Tomcat y poder usarlo con GeneXus rápidamente.
Muchas veces instalamos una herramienta y luego tenemos que volver a hacerlo y nos cuesta tanto trabajo como la primera vez porque nos hemos olvidado.
Aquí un ayuda memoria de los pasos para instalar el Tomcat 5.5.20 para usarlo con GeneXus 9.0 y el generador java.

Espero que este instructivo siga vigente por mucho tiempo, así que como hago referencia a bajar algunos Archivos de Internet, y estos no siempre están disponibles después de un tiempo determinado, voy a subir los archivos que se necesitan a un ftp propio por si quieren bajarlos de ahí.

Espero les sea útil.


Paso 1
Primero que nada y para que vayas ganando tiempo mientras vas leyendo el instructivo te paso lo que tienes que bajarte y los links.

apache-tomcat-5.5.20.exe
jdk-1_5_0_09-windows-i586-p.exe
mysql-connector-java-5.0.4.zip
mysql-5.0.21-win32.zip
mysql-administrator-1.1.9-win.msi
nmake.zip


Paso 2
Recomiendo desinstalar la versión de Tomcat que tengan instalado, cuidado porque en la desinstalación pregunta si deseas eliminar las aplicaciones que tengas, y puede suceder que tengas una aplicación particular ya funcionando en tomcat con otra versión anterior y la borres.
Te recomiendo que la copies a otro lugar.
Si no entiendes que estoy diciendo fíjate en :

C:\tomcat\webapps

si tienes alguna aplicación que sea tuya, si la tienes respaldala en otro lugar del disco y luego dile al wizard de desinstalación de tomcat que borre todo.


Paso 3
Si tienes instalado el JDK desinstalalo y si quieres puedes desinstalar el runtime también para que no te de problema con las versiones.


Paso 4
Instalate el jdk-1_5_0_09-windows-i586-p.exe
Cuando te pida la ruta de instalación si quieres luego seguir el ejemplo al pie de la letra, te recomiendo instalarlo en:

C:Javajdk1.5.0_09


Paso 5
Instalate el apache-tomcat-5.5.20.exe
En cierto momento el wizard de instalación te pregunta donde está el JDK y te pone una ruta por defecto PREFERIBLE(c:\tomcat), tu debes buscar la que mencioné en el paso 4.


Paso 6
Luego de instalado el Tomcat te debería quedar en la barra de tareas el ícono del monitor de tomcat.
Si no aparece el monitor del tomcat puedes ejecutarlo y debes levantar el tomcat si no esta levantado.


Paso 7
Tomcat no ejecuta servlets que no estén detallados en el archivo web.xml de cada aplicación .
Como este instructivo no muestra como hacer deployment debemos descomentar las lineas para que se permita la ejecución de clases anonimas.
Para esto debemos ubicar el archivo web.xml en C:\tomcat\conf editarlo, y buscar el siguiente código.

Lo que haremos es cerrar y abrir el comentario para que luego cuando hagamos deployment sea más fácil ubicar que es lo que tenemos que comentar.
Quedando el código de la siguiente forma, eliminado lo que esta en circulo rojo


Paso 8
Para ver si está todo bien con el tomcat, lo bajamos y lo volvemos a subir con el monitor tomcat y abrimos el navegaro y colocamos la siguiente url:

http://localhost:8080/servlets-examples/servlet/HelloWorldExample

Donde nos debe aparecer "hola mundo" como texto en la página.


Paso 9
Podemos ver el administrador de tomcat si ponemos la siguiente url:

http://localhost:8080


Paso 10

Nos colocamos en el directorio C:\Tomcat\webapps y creamos un nuevo folder con el nombre de nuestra

aplicacion por ejemplo "mi_sistema"

Dentro de este folder "mi_sistema" creamos los folders "images", "temp" y "WEB-INF".
Dentro del folder "WEB-INF" creamos los folder "classes" y "lib".


Paso 11
Descomprimimos el archivo mysql-connector-java-5.0.4.zip (anteriormente bajado) en una carpeta temporal y busacmos el archivo

mysql-connector-java-5.0.4-bin.jar que es el connector jdbc.

Copiamos este archivo al folder "lib" creado en el Paso 10.

En este mismo folder copiaremos otros archivos ".jar" que se encuentran en el directorio de la instalación de GeneXus

C:\Archivos de programa\ARTech\GeneXus\GeneXus90\gxjava

Estos son:

gxclassr.jar (este archivo no se encuentra con esta extensión sino que se encuentra como ".zip", debemos copiarlo y luego renombrarlo a ".jar")
GxUtils.jar
iText.jar


Paso 12

Instalamos mysql con mysql-5.0.21-win32.zip y luego creamos la base de datos en nuestro ejemplo "mi_sistema" con el administrador de base de datos de tu

preferencia. Puedes usar si quieres el mysql-administrator-1.1.9-win.msi que bajaste en el Paso 1


Paso 13
Copiaremos al folder C:\Java (creado en el Paso 4) los siguientes archivos necesarios que se harán referencia desde Genexus

El connector jdbc que usamos en el Paso 11 mysql-connector-java-5.0.4-bin.jar
Por que este lo vamos a tener 2 veces copiado? Porque en teoria podrías tener el tomcat instalado en otra maquina, y serían usandos en momento de ejecución por tomcat. Aquí estamos copiando los archivos que serán utilizados por genexus.

El nmake.exe y nmake.err (es un utilitario que permite construir proyectos a partir de archivo .mak. Lo provee el Visual Studio .Net ,también es provisto por

otros lenguajes que utilizan Makefiles, como Java) esta dentro del zip nmake.zip


Paso 14

Ahora en Genexus, configuraremos las propiedades del modelo se la siguiente forma.
Creamos el nuevo modelo de prototipo o produccion con el nombre correspondiente y las siguientes características

El Enviroment
Languaje: Java
User Interface: Web Form
DBMS: MySql
Target Path: modelojavaweb


Luego cuando quiera hacer el impacto de base de datos le damos cancelar, para nosotros definir las propiedades a mano sin el wizard


En el boton Properties

En el nodo Client Server Information

Blob local storage path:
/temp/

En el nodo Web Information

Servlet Directory :
C:\Tomcat\webapps\mi_sistema\WEB-INF\classes

Temp media directory:
/temp

Static Content Base URL:
/images

Static content directory seen from client:
C:\Tomcat\webapps\mi_sistema\images


En el boton DBMS Options

Algunos datos obligatorios a completar

Access technology to set: JDBC

Database name: mi_sistema

Server name: localhost

Server TCP/IP Port: 3306

Connect to server: At first request

Show connection dialog: Never

Userid:Usuario

User password: password

MySql Version: 4.x to 5.0.2


En el boton Execution

Plataform: Sun SDK

Classpath:
gxclassr.zip;GxUtils.jar;.;C:\javamysql-connector-java-5.0.4-bin.jar;C:\Tomcat\commonlib\servlet-api.jar

Compiler Path:
C:Javajdk1.5.0_09binjavac.exe
direct
Make Path:
C:Javanmake.exe

Interpreter Path:
C:Javajdk1.5.0_09binjava.exe

Web Aplication Base URL:
http://localhost:8080/mi_sistema/servlet/

Boton Advanced

Web Browser Settings: Use Default Browser

Luego al final boton Set as default

Para comprobar que la configuración de Genexus con respecto a Tomcat quedó en forma correcta, escribe la siguiente url en el browser:
http://localhost:8080/mi_sistema/servlet/com.genexus.webpanels.gxver

El mensaje que debe aparecer para indicar que está todo ok es el siguiente:
Running GeneXus Runtime Classes Version 9.0.2.079


Paso 15

Crear una trn en diseño e impactarla en el modelo recién configurado, o si ya teníamos transacciones creadas, solo hacer el impacto de base de datos.
Build / Impact Database

Reorganize


Paso 16

Armar los web panels main de prueba, especificar y compilar.
Ejecutar la aplicación en http://localhost:8080/mi_sistema/servlet/hmain


Felicitaciones!!!
Usted ya tiene andando su aplicación en java.

Espero le haya sido util este instructivo.
-------------------


6 comentarios:

Unknown dijo...

Muy bueno la guia de como configurar el tomcat-MySql-Genexus
solo falta agregarle en el paso7
ademas de modificar el web.xml(descomentar el codigo, no eliminar), requiere que se le modifique el fichero "context" en el tag que inicialmente esta como context poner context reloadable="true" privileged="true" porque sino no funciona .
Espero que les sirva para que ahorren tiempo y no le de dolor de cabeza como me dio a mi jaja
Salu2,
Dunia.

Anónimo dijo...

Hola: según entiendo está ok la configuración, sin embargo tengo elsiguiente problema al reorganizar:

¿Sabras de que se trata?


ExecuteDirectSQL/CREATE TABLE prueba.`TRN01` (`Numero` smallint NOT null , `Caracter` char(10) NOT null , `Fecha` date NOT null , `Blob` LONGBLOB NOT null , PRIMARY KEY(`Numero`)) TYPE=InnoDB

Text : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'TYPE=InnoDB' at line 1
Error Code : 1064 SQLState : 42000

com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'TYPE=InnoDB' at line 1

at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1026)

at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)

at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3515)

at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3447)

at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1951)

at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2101)

at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2548)

at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1605)

at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1524)

at com.genexus.db.driver.GXStatement.executeUpdate(Unknown Source)

at com.genexus.db.DBConnectionManager.executeStatement(Unknown Source)

at com.genexus.ExecuteDirectSQL.execute(Unknown Source)

at gxrgza.execute_int(gxrgza.java:50)

at gxrgza.execute(gxrgza.java:21)

at Reorganization.execute(Reorganization.java:35)

at com.genexus.GXReorganization.executeReorg(Unknown Source)

at com.genexus.GXReorganization.executeReorg(Unknown Source)

at Reorganization.main(Reorganization.java:13)

Anónimo dijo...

Seme olvido indicar las versiones :
Tomcat 6.0.18
MySQL 6.0.9

Saludos.

oocazionez dijo...

duni,
Excelente aporte. Eso era lo que me hacía falta para hacerlo funcionar. Gracias :)

Si esta bien dijo...

tengo un problema en el paso 14 Compiler Path:
C:Javajdk1.5.0_09binjavac.exe
no encuentro dentro de bin el archivo javac.exe que hago? soy novato en esto.

Rolando

Si esta bien dijo...

Fijate que ya complile pero ahora me da este error:
Estado HTTP 404 - /plagx/servlet/hmain/hsecweb

type Informe de estado

mensaje /plagx/servlet/hmain/hsecweb

descripción El recurso requerido (/plagx/servlet/hmain/hsecweb) no está disponible.

que puedo hacer?