Este artÃculo te mostrará como configurar Apache Geronimo v1.1 para ejecutarse como un servicio de MS Windows. Se requerirá Java Service Wrapper (JSW) como software adicional para lograr dicha configuración. Usando JSW te proporciona un "control" adicional en el servicio que configures, como la habilidad de aplicar ping al servicio y asà ayudar a la respuesta si el servicio no esta en ejecución.
En este artÃculo revisaremos los diversos parámetros de configuración del JSW que controla el comportamiento del servicio y al wrapper mismo.
Pre-requisitos de Software
Para preparar a Apache Geronimo v1.1 como servicio de MS Windows, necesitarás Java Service Wrapper. Para este ejemplo, usamos Java Service Wrapper 3.2.0, disponible para su descarga en la siguiente URL:
http://sourceforge.net/projects/wrapper/
Para este ejemplo, también estamos usando Apache Geronimo v1.1 bajo Windows XP. Puedes descargar los binarios de Apache Geronimo de la siguiente URL:
http://geronimo.apache.org/downloads.html
Instalando Apache Geronimo
La instalación de Geronimo a partir de los binarios es muy simple. Sólo extrae al archivo zip en un directorio de tu conveniencia; a partir de ahora, este artÃculo se referirá a ese directorio como <geronimo_home>.
Instalando Java Service Wrapper
La instalación del wrapper es tan simple como la de Apache Geronimo. Ya que hayas obtenido la versión correcta de tu ambiente, puedes extrae al archivo zip en un directorio de tu convenienvia; a partir de ahora, este artÃculo se referirá a ese directorio como <jsw_home>.
Configurando al wrapper
Java Service Wrapper viene con un archivo de configuración ejemplo, wrapper.conf, el cual pre-configura la ejecución de un script prueba (también proporcionado). En esta sección, para tu conveniencia, proporcionamos un archivo wrapper.conf especÃfico para Geronimo.
El archivo wrapper de configuración se encuentra en el directorio <jsw_home>\conf. Respalda al archivo original y crea un nuevo archivo wrapper.conf, con el contenido del siguiente ejemplo.
----------------> TRADUCCION PENDIENTE
#******************************************************************** # Wrapper Properties #******************************************************************** # Java Application wrapper.java.command=<java_home>\bin\java # Java Main class. This class must implement the WrapperListener interface # or guarantee that the WrapperManager class is initialized. Helper # classes are provided to do this for you. See the Integration section # of the documentation for details. wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperStartStopApp # Java Classpath (include wrapper.jar) Add class path elements as # needed starting from 1 wrapper.java.classpath.1=<jsw_home>\lib\wrapper.jar wrapper.java.classpath.2=<geronimo_home>\lib\cglib-nodep-2.1_3.jar wrapper.java.classpath.3=<geronimo_home>\lib\commons-cli-1.0.jar wrapper.java.classpath.4=<geronimo_home>\lib\commons-logging-1.0.4.jar wrapper.java.classpath.5=<geronimo_home>\lib\geronimo-common-1.1.jar wrapper.java.classpath.6=<geronimo_home>\lib\geronimo-deploy-jsr88-1.1.jar wrapper.java.classpath.7=<geronimo_home>\lib\geronimo-deploy-tool-1.1.jar wrapper.java.classpath.8=<geronimo_home>\lib\geronimo-deployment-1.1.jar wrapper.java.classpath.9=<geronimo_home>\lib\geronimo-j2ee-deployment_1.1_spec-1.0.1.jar wrapper.java.classpath.10=<geronimo_home>\lib\geronimo-kernel-1.1.jar wrapper.java.classpath.11=<geronimo_home>\lib\geronimo-qname_1.1_spec-1.0.1.jar wrapper.java.classpath.12=<geronimo_home>\lib\geronimo-system-1.1.jar wrapper.java.classpath.13=<geronimo_home>\lib\geronimo-util-1.1.jar wrapper.java.classpath.14=<geronimo_home>\lib\log4j-1.2.8.jar wrapper.java.classpath.15=<geronimo_home>\lib\mx4j-3.0.1.jar wrapper.java.classpath.16=<geronimo_home>\lib\mx4j-remote-3.0.1.jar wrapper.java.classpath.17=<geronimo_home>\bin\server.jar wrapper.java.classpath.18=<geronimo_home>\bin\shutdown.jar # Java Library Path (location of Wrapper.DLL or libwrapper.so ) wrapper.java.library.path.1=..\lib # Java Additional Parameters wrapper.java.additional.1=-Dorg.apache.geronimo.base.dir=<geronimo_home> wrapper.java.additional.2=-Djava.io.tmpdir=<geronimo_home>\var\temp wrapper.java.additional.3=-Djava.endorsed.dirs="<geronimo_home>\lib\endorsed" wrapper.java.additional.4=-Djava.extension.dirs="<geronimo_home>\lib\ext" # Initial Java Heap Size (in MB) #wrapper.java.initmemory=3 # Maximum Java Heap Size (in MB) #wrapper.java.maxmemory=64 # Application parameters. Add parameters as needed starting from 1 wrapper.app.parameter.1=org.apache.geronimo.system.main.Daemon wrapper.app.parameter.2=0 wrapper.app.parameter.3=org.apache.geronimo.deployment.cli.StopServer wrapper.app.parameter.4=false wrapper.app.parameter.5=4 wrapper.app.parameter.6=--user wrapper.app.parameter.7=system wrapper.app.parameter.8=--password wrapper.app.parameter.9=manager # Filter settings, if you want to have special behaviour for logged messages # uncomment the following lines #wrapper.filter.trigger.1=JSWRestartGeronimo #wrapper.filter.action.1=RESTART #wrapper.filter.trigger.2=java.lang.OutOfMemoryError #wrapper.filter.action.2=RESTART #******************************************************************** # Wrapper Logging Properties #******************************************************************** # Format of output for the console. (See docs for formats) wrapper.console.format=PM # Log Level for console output. (See docs for log levels) wrapper.console.loglevel=INFO # Log file to use for wrapper output logging. wrapper.logfile=<geronimo_home>\var\log\jsw.log # Format of output for the log file. (See docs for formats) wrapper.logfile.format=LPTM # Log Level for log file output. (See docs for log levels) wrapper.logfile.loglevel=INFO # Maximum size that the log file will be allowed to grow to before # the log is rolled. Size is specified in bytes. The default value # of 0, disables log rolling. May abbreviate with the 'k' (kb) or # 'm' (mb) suffix. For example: 10m = 10 megabytes. wrapper.logfile.maxsize=0 # Maximum number of rolled log files which will be allowed before old # files are deleted. The default value of 0 implies no limit. wrapper.logfile.maxfiles=0 # Log Level for sys\event log output. (See docs for log levels) wrapper.syslog.loglevel=NONE #******************************************************************** # Wrapper Windows Properties #******************************************************************** # Title to use when running as a console wrapper.console.title=Apache Geronimo v1.1 Server #******************************************************************** # Wrapper Windows NT\2000\XP Service Properties #******************************************************************** # WARNING - Do not modify any of these properties when an application # using this configuration file has been installed as a service. # Please uninstall the service before modifying this section. The # service can then be reinstalled. # Name of the service wrapper.ntservice.name=Geronimo # Display name of the service wrapper.ntservice.displayname=Apache Geronimo v1.1 Server # Description of the service wrapper.ntservice.description=Apache Geronimo v1.1 Server # Service dependencies. Add dependencies as needed starting from 1 wrapper.ntservice.dependency.1= # Mode in which the service is installed. AUTO_START or DEMAND_START wrapper.ntservice.starttype=AUTO_START # Allow the service to interact with the desktop. wrapper.ntservice.interactive=false
<---------------- TRADUCCION PENDIENTE
Aplica una búsqueda con reemplazo, cambiando las etiquetas <java_home>, <geronimo_home> y <jsw_home>, por los valores de tu ambiente.
Hagamos una revisión de nivel general, a lo que hace el archivo de configuración:
- Al inicio de la configuración, estableces la ubicación del ejecutable JAVA, asó como el classpath JAVA a los jars Geronimo.
- Después especificas los valores inicial y máximo del tamaño de heap para la JVM y proporcionas algunos valores de inicio, como el usuario y contraseña para iniciar el servicio.
- A continuación, proporcionas la configuración de bitácora; este archivo de configuración creará una bitácora para la instalación, inicio, fin t desinstalación de este servicio Geronimo en el directorio <geronimo_home>\var\log.
- Finalmente, proporcionas el nombre del servicio y estableces el tipo de inicio.
Agregando el servicio
Junto con el wrapper, existen dos scripts para instalar y desinstalar el servicio. Ya que estamos usando el mismo nombre del archivo wrapper de configuración, wrapper.conf, no hay necesidad de alterar alguno de esos dos scripts.
Para agregar Apache Geronimo como un servicio MS Windows, ejecuta el siguiente comando:
<jsw_home>\bin\InstallTestWrapper-NT.bat
Para eliminar el servicio de Apache Geronimo, ejecuta el siguiente comando:
<jsw_home>\bin\UninstallTestWrapper-NT.bat
Recuerda que por simplicidad, estamos reusando los scripts proporcionados por la instalación de Java Service Wrapper; el nombre de los scripts no es relevante, ya que ambos apuntan al archivo wrapper de configuración que hemos modificado.
Puedes revisar los resultados de la instalación en el archivo bitácora <geronimo_home>\var\log\jsw.log. DeberÃas ver algo similar a:
STATUS | wrapper | 2006/03/24 15:39:18 | Apache Geronimo v1.1 Server installed.
Ejecutando el servicio de Apache Geronimo v1.1
Para ejecutar al servicio puedes emplear la interfaz de MS Windows ó puedes emplear la opción de lÃnea de comandos. Para el siguiente ejemplo, la opción elegida es el uso de la lÃnea de comandos.
Desde una lÃnea de comandos de Windows, ejecuta el comando:
net start Geronimo
DeberÃas ver un mensaje de confirmación similar al siguiente:
E:\JavaServiceWrapper\bin>net start Geronimo
The Apache Geronimo v1.1 Server service is starting..
The Apache Geronimo v1.1 Server service was started successfully.
Nota que Apache Geronimo puede tomar algunos instantes adicionales para iniciar: incluso cuando recibas el mensaje de que el servicio ha sido iniciado exitosamente, Geronimo podrÃa aún estar cargándose.
Verifica <geronimo_home>\var\log\jsw.log para comprobar que Geronimo ha iniciado completamente: la última lÃnea de la bitácora deberÃa ser similar a:
INFO | jvm 1 | 2006/06/28 13:06:39 | Geronimo Application Server started
Como alternativa, si instalaste al comando tail de Windows, podrÃas ejecutar al siguiente comando para monitorear el estado.
tail -f <geronimo_home>\var\log\jsw.log
Una vez que veas en la bitácora el mensaje Geronimo Application Server started indica que todo está preparado. Con ello puedes abrir un explorador Web y solicitar acceso a la Consola de Administración de Geronimo, mediante la siguiente URL: