Está en la página 1de 5

Migracin de aplicaciones a Wildfly (JBoss) 8

En este documento se describen problemas encontrados y configuraciones que son


necesarias hacer al hacer el deploy de una aplicacin en Wildfly.

Contenido
Configuracin de DataSources.............................................................................................................2
Instalacin de una librera externa como mdulo.................................................................................4

Configuracin de DataSources
La forma ms sencilla de crear un DataSource en Wildfly es mediante la Web Console.
Los pasos a seguir son los siguientes:
1. Instalar el driver JDBC
1. Verificar si el driver que se desea instalar es JDBC4-compliant.
Para verificar esto se debe descomprimir el JAR del driver y en la estructura de
carpetas interna notar si existe el archivo META-INF/services/java.sql.Driver.
Si dicho archivo existe no es necesario hacer nada y se debe pasar al paso
siguiente, si no existe es necesario hacer lo siguiente:
Crear un archivo de texto llamado java.sql.driver que contiene nicamente una
lnea: el fully-qualified-class-name del driver que se desea instalar. Por ejemplo,
para un driver Oracle dicho archivo deber contener solamente la siguiente
lnea:
oracle.jdbc.driver.OracleDriver
Luego, se debe colocar dicho archivo en una estructura de carpetas como la
siguiente (el JAR del driver y la raz de las carpetas creadas deben estar en el
mismo directorio):
META-INF/services/java.sql.Driver
Finalmente, se debe actualizar el JAR mediante el siguiente comando:
jar -uf jdbc-driver.jar META-INF/services/java.sql.Driver
Copiar el JAR del driver en /standalone/lib y en /standalone/deployments. Se
debe copiar en las dos carpetas.
2. Crear el DataSource mediante la Web Console
1. Levantar el servidor.
2. Acceder a la Web Console -> Configuration -> Connector -> Datasources.
1. Crear un nuevo DataSource
2. En el paso 1 elegir el nombre JNDI que identificar al DS (por ejemplo:
java:jboss/standalone/AnubisDS).
3. En el paso 2 elegir de la lista de los drivers detectados el driver instalado en
los pasos anteriores.
4. En el paso 3 ingresar la URL de conexin y el usuario y contrasea.
5. Habilitar el DS.
3. Configurar una aplicacin para que use el DataSource
2

1. Aplicaciones Genexus X Ev 1
1. Primero se debe configurar el DataStore de Genexus con las siguientes
propiedades:

Use Datasource for web based applications: TRUE


JDBC Datasource: Aca se debe ingresar el nombre JNDI que se
ingres en el primer paso al crear el Datasource en la Web Console
(por ejemplo: java:jboss/standalone/AnubisDS)

2. Exportar el .war de la aplicacin mediante la herramienta de Genexus yendo


a Tools -> Java Generator -> Deployment Wizard.
3. Es necesario hacer algunas modificaciones al war generado por el
Deployment wizard. Primero, se debe descomprimir el war. Luego, se debe
agregar un archivo en la carpeta WEB-INF llamado jboss-web.xml, que debe
contener lo siguiente:
<!DOCTYPE jboss-web PUBLIC
"-//JBoss//DTD Web Application 5.0//EN"
"http://www.jboss.org/j2ee/dtd/jboss-web_5_0.dtd">
<jboss-web>
<resource-ref>
<res-ref-name>jdbc/OracleDS</res-ref-name>
<jndi-name>java:jboss/standalone/AnubisDS</jndi-name>
</resource-ref>
</jboss-web>

Siendo:
res-ref-name: Nombre que se dar al recurso, debe ser el mismo que
en el web.xml
jndi-name: Nombre JNDI del datasource

4. Adems, se debe modificar el archivo web.xml y agregarle lo siguiente:


<resource-ref>
<res-ref-name>jdbc/OracleDS</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
5. Finalmente, se debe reempaquetar el war utilizando el siguiente comando:
jar -uvf aplicacin.war directorioDeClases
Siendo directorioDeClases el directorio donde se encuentran los archivos a
empaquetar en el war.
Fuentes: https://docs.jboss.org/author/display/WFLY8/DataSource+configuration

Instalacin de una librera externa como mdulo


La instalacin de una librera externa como mdulo en WildFly permite la carga de
libreras compartidas entre varias aplicaciones a demanda, y cargando solamente las
libreras de las que la librera a cargar depende.
Los pasos a seguir son los siguientes:
1. Creacin del mdulo en el servidor
1. Crear un archivo llamado module.xml. El archivo debe estar ubicado en una
estructura de directorios en la carpeta WildFly-X.Y.Z/modules/. La estructura de
carpetas debe seguir la ruta del nombre del paquete que contiene la clase main
de la librera. Por ejemplo, para la librera iText.jar la estructura quedara de la
siguiente manera:
com\lowagie\text\main
La estructura de dicho archivo puede ser copiada de cualquier archivo de los
mdulos que vienen con la instalacin de WildFly. Dicha estructura es la
siguiente:
En name debe colocarse la misma estructura de directorio creada anteriormente
y en path el nombre del jar de la librera. En dependecias se deben colocar las
los mdulos de las libreras de las que depende (puede no haber ninguna).
<module xmlns="urn:jboss:module:1.1" name="com.lowagie.text">
<properties>
<property name="jboss.api" value="private"/>
</properties>
<resources>
<resource-root path="iText.jar"/>
</resources>
<dependencies>
<module name="org.apache.log4j"/>
</dependencies>
</module>
2. Copiar el jar de la librera a la carpeta donde se cre el archivo module.xml.

2. Configurar una aplicacin para que use la librera


1. Crear en la carpeta WEB-INF un archivo llamado jboss-deploymentstructure.xml. El archivo debe tener la siguiente estructura:
<jboss-deployment-structure>
<deployment>
<dependencies>
<module name="com.lowagie.text"/>
</dependencies>
</deployment>
</jboss-deployment-structure>
2. Luego, se debe reempaquetar el war utilizando el siguiente comando:
jar -uvf aplicacin.war directorioDeClases
Siendo directorioDeClases el directorio donde se encuentran los archivos a
empaquetar en el war.
Fuentes: https://sites.google.com/site/jboss72tengda/jboss-module-setting-put-own-library-

to-jboss