El servicio NT de Jakarta es un ejecutable que envuelve el contenedor de Servlets Tomcat y lo ejecuta como un servicio NT. Para instalarlo necesitamos:
- Obtener el ejecutable (jk_nt_service.exe)
- Descargar el ejecutable desde el directorio win32/i386 encontrado donde descargamos la Distribuci�n Binaria de Tomcat. Para aquellos que usan Netscape como navegador, intentar descargar una versi�n Zip del fichero, si est� disponible. Peude haber problemas usando Netscape para descargar ficheros DLL.
- Personalizar un fichero de propiedades que le proporcione al servicio informaci�n sobre Tomcat (wrapper.properties).
- Localizamos la plantilla del fichero wrapper.properties en nuestro directorio Tomcat.
- Modificamos la propiedad wrapper.tomcat_home para que apunte a nuestro home Tomcat
- Modificamos la propiedad wrapper.java_home para que apunte a nuestro home Java.
- Instalar jk_nt_service ejecut�ndolo con la bandera -i.
- Ejecutamos jk_nt_service -I <name of service> <path to updated wrapper properties>
- <name of service> deber�a ser una sola palabra (sin espacios) como Jakarta
- <path to updated wrapper properties> deber�a apuntar a nuestro fichero wrapper.properties (y el servicio comprobar� su existencia).
- Por ejemplo, una l�nea de comandos v�lida podr�a ser: jk_nt_service -I Jakarta wrapper.properties
- Arrancar Tomcat como un Servicio.
- Desde la l�nea de comandos, ejecutamos: net start <name of service> (por ejemplo: net start Jakarta)
- Desde el applet de servicios de NT, seleccionamos nuestro servicio y pulsamos start
- Para el servicio Tomcat.
- Desde la l�nea de comandos, ejecutamos: net stop <name of service> (por ejemplo, net stop Jakarta)
- Desde el applet de servicios de NT, seleccionamos nuestro servicio y pulsamos stop
Si la localizaci�n del fichero log en nuestro fichero wrapper.properties apunta a un directorio que no existe, debemos crearlo antes de arrancar el servicio.
Nota especial:
El servicio Tomcat usa AJPV12 para realizar operaciones de limpieza durante su cierre y deber�amos asegurarnos de que el conector AJPV12 est� definido en nuestro server.xml. En ausencia de un puerto AJPV12 configurado el servicio Tomcat se cerrar� abruptamente (es decir ser� asesinado) sin hacer ninguna operaci�n de limpieza
Nota para usuarios del JDK 1.3:
Hay un problema conocido en el JDK 1.3 que afecta a las aplicaciones Java que se ejecutan como servicios NT. El bug hace que el servicio termine cuando el usuario actual sale del sistema. La forma m�s simple de evitar este problema es usar el JDK 1.2. Si nuestra aplicaci�n requiere caracter�sticas del JDK 1.3 podemos echar un vistazo a
javaserv o
JavaService.
Para eliminar el servicio instalado ejecutamos: jk_nt_service -R <name of service>
�Configuraci�n Avanzada
- Modificar las propiedades del servicio NT Tomcat. Por defecto el servicio se ejecutar� en modo manual bajo la cuenta de usuario del sistema local. Para modificar esto, abrimos el applet de servicios de NT, seleccionamos nuestro servicio y pulsamos startup. Se abrir� una ventana que nos permitir� personalizar el servicio a nuestro gusto.
- Modificar el classpath. El classpath est� determinado por las propiedades wrapper.class_path, para modificarlo, s�lo tenemos que a�adir/eliminar/modificar l�neas wrapper.class_path.
El classpath completo se calcula concatenando todas las l�neas wrapper.class_path poniendo un ";" entre ellas. - Ejecutar varios ejemplares de Tomcat. Digamos que queremos ejecutar un Tomcat para producci�n y otro para desarrollo. Todo lo que necesitamos es instalar dos veces el servicio Tomcat pero bajo nombres diferentes (y con diferentes ficheros wrapper.properties y server.xml).
- Debemos asegurarnos de que los conectores AJPV12 y HTTP est�n modificados en cada server.xml para evitar conflictos.
- Debemos asegurarnos de actualizar la propiedad wrapper.shutdown_port en wrapper.properties para que apunte a los puertos AJPV12 corectos (por defecto es 8007).
- Modificar la l�nea de comandos usada para arrancar Tomcat. El servicio Tomcat toma toda la configuraci�n de su l�nea de comandos de wrapper.properties! Para personalizar la l�nea de comandos, editamos la propiedad wrapper.cmd_line y nos aseguramos de que es una l�nea de comandos Java legal.