El cuarto y último método es usar la clase helper WrapperJarApp para iniciar la aplicación.
Esta es otra manera fácil de integrar el Wrapper, cuando la aplicación ya está configurada para ejecutarse como un archivo ejecutable (jar).
Sin embargo, hay algunas cosas que se deben tener en cuenta cuando se utiliza este método.
Cuando el Wrapper apaga la máquina JVM, no hay ninguna notificación directa a la aplicación solicitando que la terminación se lleve acabo limpiamente.
En otras palabras, el Wrapper apagará la máquina JVM invocando System.exit () desde la máquina JVM.
Si la aplicación ha registrado su propio Shutdown Hook, este será invocado, dándole a la aplicación una oportunidad que se apague limpiamente.
Por otro lado si, el Shutdown Hook
no está registrado, la aplicación se cerrará repentinamente de la misma manera como cuando utiliza CTRL-C desde la consola (ventana de comandos).
En ambos casos, con o sin un Shutdown Hook, se generará el mismo comportamiento, es decir como si la aplicación se ejecutara sin el Wrapper.
Cuando la integración se realiza con el método 4, la clase helper WrapperJarApp sustituye a la clase principal de la aplicación.
Esto le dá la oportunidad a la clase WrapperJarApp de inmediatamente iniciar el WrapperManager y registrar la máquina JVM con el Wrapper.
La clase WrapperJarApp entonces administra toda la interacción con el Wrapper, así como el ciclo de vida de una aplicación.
Cuando el Wrapper envía un mensaje a la máquina JVM a través del WrapperManager el manifiesto de jar
es inspeccionado y su clase principal configurada es invocada.
La clase WrapperJarApp crea un nuevo cargador de clases que es capaz de cargar las clases desde el ejecutable jar, así como
otros archivos jar que estén referenciados dentro de su archivo de manifiesto.
Se le ordena a la clase WrapperJarApp como iniciar la aplicación al pasar la ubicación absoluta o relativa del archivo ejecutable jar seguido de
cualquier tipo de parámetros adicionales de la aplicación, al método principal de WrapperJarApp.
Instrucciones Detalladas
Esta sección le guiará a través de una explicación detallada de cómo configurar a
JBoss para funcionar desde el interior del Wrapper.
La mayoría de las otras aplicaciones desplegadas como archivos ejecutables de Java (jars) puede ser integrada siguiendo los mismos pasos.
Instalar JBoss
Este tutorial inicia con una instalación limpia de JBoss.
En esta ocasión usamos "JBoss EAP 7.0.0", por lo que los pasos exactos pueden ser ligeramente diferentes dependiendo de la versión que se tenga instalada.
Después de descargar a JBoss, extraiga los archivos en un directorio. En este tutorial, utilizaremos la carpeta D:\JBoss.
Luego, cree las siguientes carpetas:
D:\JBoss\lib
D:\JBoss\conf
D:\JBoss\logs
Instalar Archivos del Wrapper
Después de haber descargado al Wrapper, extraiga los archivos en una carpeta, que aquí será referenciada como {WRAPPER_HOME}.
Hay cuatro directorios que se deben configurar para poder utilizar el Wrapper.
Directorio bin
El primer paso es copiar los siguientes archivos en el directorio bin de JBoss:
Cambie el nombre de los tres archivos batch para que el nombre de su aplicación sea de la siguiente manera.
Asegúrese de extraer las extensiones .in para que todos los archivos terminen en .bat.
(Dependiendo de cómo esté configurado el explorador de archivos en su computadora, puede ser posible que usted no pueda ver las extensiones del archivo.)
El archivo wrapper.exe es el ejecutable del Wrapper.
Los tres archivos batch se utilizan para ejecutar JBoss en una consola, y para instalar y desinstalar la aplicación como un servicio de Windows.
Estos archivos batch no necesitan modificaciones.
Se asume que el archivo wrapper.conf
será ubicado dentro de un directorio conf un nivel arriba, ../conf/wrapper.conf.
Si desea colocar el archivo wrapper.conf en otro lugar, los tres archivos batch requerirán una modificación apropiada.
El archivo wrapper.dll es un
archivo de librería nativa requerido por la porción del Wrapper que se ejecuta dentro de la máquina JVM.
El archivo wrapper.jar contiene todas las clases del Wrapper.
Directorio conf
El Wrapper requiere de un archivo de configuraciones "wrapper.conf" para cada aplicación.
La ubicación estándar para este archivo está en un directorio conf que se encuentra en el directorio principal (home) de cada aplicación.
Por favor copie el siguiente archivo de plantilla wrapper.conf.in en el conf directory de JBoss.
{WRAPPER_HOME}\src\conf\wrapper.conf.in
Cambie el nombre del archivo y asegúrese de remover la extensión .in para que el nombre del archivo sea wrapper.conf.
Usted debe tener ahora:
{JBOSS_HOME}\conf\wrapper.conf
Si desea cambiar la ubicación del archivo de configuración wrapper.conf, usted puede hacerlo.
Sin embargo, tendrá que modificar los archivos que previamente copió en el directorio bin de arriba para reflejar la nueva ubicación.
Directorio logs
El archivo de configuración por defecto wrapper.conf
colocará un archivo llamado wrapper.log en el directorio logs de JBoss.
{JBOSS_HOME}\logs
Si desea cambiar la ubicación del archivo wrapper.log, tendrá que editar el archivo wrapper.conf
y modificar la propiedad wrapper.logfilepara reflejar la nueva ubicación.
Línea de Comandos Java
La línea de comandos Java de un archivo ejecutable jar es muy simple.
En el caso de JBoss, solo se necesita ir al directorio y ejecutar:
java -jar D:\JBoss\jboss-modules.jar
Cualquier argumento se pasaría de la siguiente manera:
Para utilizar la línea de comandos Java con el Wrapper, tenemos que dividir los componentes de la línea de comandos en un archivo de configuración.
Abra el archivo wrapper.conf en un editor para hacer cambios como se muestra a continuación.
NOTA
Donde se mencionan las propiedades, se proporcionan vínculos sobre sus descripciones.
Tome un momento para revisar las descripciones de cualquier propiedad que se modifique.
En muchos casos hay más detalles sobre su uso y que a veces no son mencionados aquí.
Java Ejecutable
Primero se necesita extraer el Java ejecutable y asignar la ubicación de la ruta a la propiedad wrapper.java.command:
wrapper.java.command=java
Archivo jar del Wrapper
El Wrapper requiere que su propiedad wrapper.jar sea especificada:
wrapper.jarfile=/usr/lib/jboss/lib/wrapper.jar
ADVERTENCIA
La propiedad wrapper.jarfile se introdució en la versión 3.5.55 del Wrapper.
Si usa una versión más antigua del Wrapper, es necesario incluir wrapper.jar en la ruta de la clase (classpath):
Después, los índices de los siguientes elementos de classpath deben ajustarse para no repetir la propiedad wrapper.java.classpath.1.
Classpath
El siguiente paso es el classpath, que se configura usando las propiedades wrapper.java.classpath.<n>.
En realidad Java no permite especificar dicho classpath cuando se ejecuta con el parámetro -jar, pero este método de integración funciona un poco diferente con el Wrapper.
Cuando se usa el Wrapper con la clase helper WrapperJarApp, Java no ejecuta el archivo jar directamente.
Es necesario especificar la clase helper como la clase principal de la aplicación.
La clase principal ejecutada por Java al iniciar se especifica usando la propiedad
wrapper.java.mainclass como sigue:
Los parámetros de las aplicaciones son configurados usando las propiedades
wrapper.app.parameter.<n>.
En este caso, la línea de comandos para iniciar JBoss requiere algunos parámetros de aplicación.
Es necesario notificar a la clase helper WrapperJarApp cual jar debe ejecutar.
Esto se hace de la siguiente manera:
Los parámetros adicionales de Java se especifican usando las propiedades wrapper.java.additional.<n>.
Algunos parámetros deben ser configurados para que JBoss inicie correctamente.
Se debe configurar una propiedad más para poder usar el Wrapper.
El Wrapper hace uso de una librería nativa para controlar las interacciones con el sistema.
Este archivo de libreríawrapper.dll
necesita ser especificado en la ruta de librería que se envía a la máquina JVM.
JBoss no tiene librerías nativas, pero si las tuviera, sería necesario especificar los directorios donde se ubicarían.
La ruta de la librería se establece usando las propiedades wrapper.java.library.path.<n>.
Observe que mientras estas configuraciones funcionarán correctamente en nuestra máquina de test, depende altamente de la estructura de directorios y la plataforma.
Es una gran ventaja que el Wrapper siempre establece la ubicación del directorio de trabajo del archivo wrapper.exe y hace uso de una única variable de entorno, y somos capaces de modificar las propiedades anteriores de tal manera que sean completamente independientes de plataforma y máquina:
El paso final es configurar las Propiedades de Servicios de Windows.
Nos limitaremos a establecer las propiedades que se deben modificar, pero hay varias más disponibles.
Consulte la documentación para obtener información sobre su uso.
Los valores sugeridos para estas variables se muestran a continuación.
Las propiedades son configuradas en el archivo wrapper.conf
que se encuentra en la carpeta conf de la instalación del Wrapper.
Probarlo
JBoss se inicia simplemente al ejecutar el archivo batch bin\myJBoss.bat.
Debido a la manera en la que el Wrapper establece su directorio actual, no es necesario ejecutar este archivo batch desde el directorio bin.
Por favor, intente ejecutar la aplicación como una aplicación de consola para verificar la configuración antes de intentar ejecutarla como un servicio.
Al iniciar por primera vez, JBoss creará sus archivos de configuración en el directorio principal del usuario actual.
Tenga en cuenta que lo más probable es que sea un lugar diferente cuando se ejecuta como un servicio en comparación como cuando se ejecuta en una ventana de consola.
Felicidades, su aplicación debe estar ahora en marcha y funcionando.
Si experimenta algún problema, consulte la sección Solución de problemas para recibir ayuda y detectar el problema.