martes, 25 de agosto de 2009

Instalación de Tomcat en windows 64 bit... la odisea

Gran satisfacción gran... luego de desesperar hasta el punto de decidir dejar "para el futuro" este tema, casi de la nada y simplemente surfeando en la red y razonando un poco, se ha logrado hacer que Tomcat sea gestionado como servicio en windows x64.

El problema es el siguiente: si se instala tomcat en un server con windows 2003 64 bits (pero pareciera que también sobre XP 64 bit), todo parecería proceder sin problemas; y de hecho se puede lanzar tomcat como proceso, pero no como servicio ya que muestra un fantasmagorico "error 2" en el log del servicio jakarta.

Navegando, surfeando, volando e inmergiéndome en la güeb encontré la punta del ovillo, que si no entendí mal sería la siguiente: el programa tomcat, cuando se instala con el instalador de windows (o sea el archivo con extensión "exe" que está en el sitio del download) lo hace a 32 bits, con el consiguiente uso de la "tecnología" wow64. Pareciera que no es posible que un proceso a 32 bit gestione un servicio en Windows 64 bit.

Para la posteridad, y para todos los desesperados del planeta que estén buscando la solución y aún no la hayan encontrado, dejo la resolución de este problema en el blog; pero para no traicionar la vocación sarcástica, la presentaré como una receta de la abuela.

Ahí vá (leer con la música de "utilisima" de fondo):

RECETA DE LA INSTALACIÓN DE TOMCAT COMO SERVICIO EN UN SERVER x64 (está para tomcat 5.5.27, pero funciona con todas)


INGREDIENTES:
  • archivo descargado desde tomcat.apache.org con la versión de tomcat deseada (pero no la autoinstalante sino la versión comprimida en un archivo zip)____________________ 1 (uno)
  • archivo descargado desde microsoft.com con el instalador de la versión de runtime de visual c++ 2005 x64 ______________________ 1 (uno)
  • archivos binarios compilados en 64 bit, descargados desde tomcat.apache.org ________________ 2 (dos) o sea tomcat 5w.exe y del subdirectorio que corresponda (AMD64 si el procesador es amd, y IA64 si es intel), el archivo tomcat5.exe
  • tiempo ______________________ cantidad necesaria (mucho)
  • paciencia _____________________________ cantidad necesaria


RECETA
  • instalar el runtime de visual c++2005 (ojo que no avisa que terminó la instalación, simplemente desaparece la pantalla de instalación)
  • NO ES NECESARIO REINICIAR (si, como diría Ripley, "es verdad aunque usted no lo crea")
  • descompactar el zip de tomcat en algún directorio (las reglas no escritas dirían que se descompacta en el directorio "program files", vamos a suponer que se siguen las reglas
  • (esto no es nes-sario -como decía un antiguo presidente- pero es bueno para simplificar) cambiar el nombre del directorio descompactado en algo más corto como por ejemplo "apache-tomcat"... quedará ahora copiado tomcat en el directorio C:\Program Files\apache-tomcat (para los pasos siguientes vamos a suponer que así quedará)
  • copiar en el directorio bin de apache los binarios descargados (ej: en C:\Program Files\apache-tomcat\bin copio los archivos tomcat5.exe y tomcat5w.exe)
  • como ya existían esos archivos (la versión 32 bit), el sistema operativo va a preguntar si queremos sobreescribirlos... por supuesto, contestar que si (para eso estamos haciendo todo este quilombo)
  • configurar la variable de entorno JAVA_HOME al directorio donde está instalado java (en mi caso C:\Program Files\Java\jdk1.6.0_06)... esto se hace desde las propiedades de MI PC (ver figura al lado)
  • abrir una shell mediante "run" -> "cmd"
  • ubicarse en el directorio donde se copiaron los archivos binarios ( cd C:\Program Files\apache-tomcat\bin)
  • ejecutar " service.bat install"... esto instalará el servicio "Tomcat5"
  • probar a iniciar el servicio "tomcat5" (NET START TOMCAT5)
Servir tibio y disfrutar con las manos cruzadas por detrás de la nuca mientras nos recostamos en la silla... Oh si, somos los más grandes...