Cómo integrar su aplicación al Java Service Wrapper

Actualmente hay cuatro maneras con las que una aplicación Java puede integrarse con el Java Service Wrapper. Tres de ellas funcionarán de inmediato sin necesidad de codificación adicional.

El primer paso es decidir cuál de estos cuatro métodos es el mejor para su aplicación. Después de una breve descripción de cada una de las cuatro opciones, entraremos en detalles sobre cómo integrar una aplicación utilizando cada método.

Método de Integración 1 (WrapperSimpleApp)

El Método 1 utiliza la clase auxiliar WrapperSimpleApp para iniciar la aplicación. Esta es la forma más sencilla de integrar su aplicación con el Wrapper, y se recomienda usar esta opción cuando possible.

Details

Sin embargo, hay algunas cosas que debemos tener en cuenta al utilizar este método. Cuando el Wrapper apaga la JVM, no hay ninguna llamada directa a una aplicación solicitando que se apague limpiamente. En lugar de eso, el Wrapper terminará la JVM llamando a System.exit()desde la JVM. Si la aplicación ha registrado su propio gancho de apagado (Shutdown Hook), este se invocará, lo que le dará a la aplicación la oportunidad de apagarse limpiamente. Si, por el contrario, no se registra ningún gancho de apagado, la aplicación se cerrará repentinamente como cuando se presiona CTRL-C en la consola (ventana de comandos). Ambos casos, con y sin un gancho de apagado, proporcionan exactamente el mismo comportamiento que si la aplicación se estuviera ejecutando sin el Wrapper.

Puede encontrar una descripción detallada con instrucciones, usando un ejemplo de una simple aplicación Hello World para Windows o Linux/UNIX.

Método de Integración 2 (WrapperStartStopApp)

El Método 2 utiliza la clase auxiliar WrapperStartStopApp. Este método ofrece una manera de integrar con aplicaciones como Tomcat, que se inician utilizando una clase y se detienen usando una otra clase.

Details

Normalmente, este tipo de aplicación abrirá un socket de servidor al iniciarse, cuya tarea es esperar una conexión que provoque un apagado. La clase stop, cuando ejecutada, desencadena el apagado al conectarse con la aplicación. La clase stop, cuando se inicia, activa el apagado conectándose a la aplicación.

El Wrapper funciona con este tipo de aplicación iniciando la aplicación como en el Método 1, utilizando la clase start y luego llamando al método principal de la clase stop cuando llega el momento de cerrar la aplicación.

Puede encontrar una descripción detallada con instrucciones usando Tomcat como ejemplo para Windows o Linux/UNIX.

Método de Integración 3 (WrapperListener)

El Método 3, si bien proporciona la mayor flexibilidad y acceso a todas las funciones del Wrapper, también es el único que requiere algo de codificación para completar la integración. Este método consiste en crear una clase que implemente la interfaz WrapperListener. A continuación, se crea una instancia de la clase de usuario y se registra con WrapperManager.

Details

Aunque este método proporciona funciones que no están disponibles con ninguno de los dos primeros métodos (WrapperSimpleApp o WrapperStartStopApp), agrega cierta complejidad. Este es el único método que permite que el código de usuario reciba y responda directamente a los eventos de control del sistema, así como a los procesos de inicio y apagado.

Si no se necesitan funciones adicionales, se debe considerar la implementación de un gancho de apagado (Shutdown Hook) para permitir el uso del Método 1 (WrapperSimpleApp) o la implementación de una clase de apagado como opciones. El método principal de una clase de apagado puede ser tan simple como llamar a un método de apagado en la aplicación.

Sin embargo, en la mayoría de los casos este control adicional no es necesario, ya que las clases auxiliares del Método 1 (WrapperSimpleApp) y del Método 2 (WrapperStartStopApp) se encargan de esto, iniciando y cerrando la aplicación en los momentos adecuados.

Para una descripción detallada con instrucciones, visite la página Independencia de Plataformas.

Método de Integración 4 (WrapperJarApp)

El cuarto y último método usa la clase auxiliar WrapperJarApp para iniciar la aplicación. Esta es otra manera simple de integrar el Wrapper cuando la aplicación ya está configurada para ejecutarse como un archivo ejecutable jar.

Details

Sin embargo, hay algunas cosas que debemos tener en cuenta al utilizar este método. Cuando el Wrapper apaga la JVM, no hay ninguna llamada directa a una aplicación solicitando que se apague limpiamente. En lugar de eso, el Wrapper terminará la JVM llamando a System.exit()desde la JVM. Si la aplicación ha registrado su propio gancho de apagado (Shutdown Hook), este se invocará, lo que le dará a la aplicación la oportunidad de apagarse limpiamente. Si, por el contrario, no se registra ningún Gancho de Apagado, la aplicación se cerrará repentinamente como cuando se presiona CTRL-C en la consola (ventana de comandos). Ambos casos, con y sin un gancho de apagado, proporcionan exactamente el mismo comportamiento como si la aplicación se estuviera ejecutando sin el Wrapper.

Puede encontrar una descripción detallada con instrucciones, usando JBoss EAP como un ejemplo para Windows o Linux/UNIX.

Referencia: Iniciar su Aplicación con el Wrapper