En las versiones anteriores JBoss AS / EAP, se utilizaba Apache Tomcat (o un fork) como contenedor web pero a partir de la versión WildFly 8 se ha sustituido por el proyecto Undertow (más detalle en http://undertow.io)
De ahí las diferencias que surgen en las configuraciones del Virtual Host y el contexto de las aplicaciones web entre JBoss AS / EAP y WildFly.
Configurando el fichero del servidor
La consola de administración de Wildfly (por defecto suele estar en http://[ip_jboss]:9990) es similar a la de JBoss EAP aunque ya no existe la opción de configurar el Virtual Host (por ejemplo http://wildfly1.neodoo.es y http://wildfly2.neodoo.es).
Para configurar el Virtual Host en WildFly, tendremos que hacerlo directamente modificando el fichero de configuración $WILDFLY_HOME/standalone/configuration/standalone.xml si se arranca el servidor en modo standalone o $WILDFLY_HOME/domain/configuration/domain.xml en modo domain.
En nuestro proyecto, estamos utilizando el servidor en modo domain y desplegamos las aplicaciones en el server-group web-server vinculado al perfil full-ha. Por lo tanto, insertamos las definiciones de los virtual hosts en el fichero $WILDFLY/domain/configuration/domain.xml :
<profile name="
full-ha
">
...
<subsystem xmlns="
urn:jboss:domain:undertow:1.1
">
<buffer-cache name="default"/>
<server name="
default-server
">
<ajp-listener name="ajp" socket-binding="ajp"/>
<http-listener name="default" socket-binding="http"/>
<host name="default-host" alias="localhost">
<location name="/" handler="welcome-content"/>
<filter-ref name="server-header"/>
<filter-ref name="x-powered-by-header"/>
</host>
<host name=»wildfly1-host» alias=»wildfly1.neodoo.es»> <location name=»/» handler=»welcome-content»/> <filter-ref name=»server-header»/> <filter-ref name=»x-powered-by-header»/> </host>
<host name=»wildfly2-host» alias=»wildfly2.neodoo.es»> <location name=»/» handler=»welcome-content»/> <filter-ref name=»server-header»/> <filter-ref name=»x-powered-by-header»/> </host>
...
</server>
...
</subsystem>
...
Creación de las aplicaciones WAR
A continuación, crearemos 2 aplicaciones WAR (una accesible en http://wildfly1.neodoo.es:8080/ y otra en http://wildfly2.neodoo.es:8080/) tomando la aplicación struts-blank.war existente en los ejemplos de la famosa framework MVC conocida como Apache Struts 1.x (el creador de este proyecto acabo contratado por Sun Microsystems y se encargó de elaborar las especificaciones de la tecnología Java Server Faces).
Descargamos el proyecto de aplicaciones de ejemplo para Struts 1.3.x desde aquí, descomprimimos el .zip y cogemos el fichero struts-blank-1.3.10.war.
Procedemos a confeccionar la aplicación struts-blank-wildfly1.war que se asociará a http://wildfly1.neodoo.es:8080/ :
- Copiamos el fichero struts-blank-1.3.10.war con el nombre struts-blank-wildfly1.war.
- Creamos el siguiente fichero jboss-web.xml (fijaros en la relación del parámetro de server-instance con el server name del fichero de configuración anterior):
<?xml version="1.0" encoding="UTF-8"?>
<jboss-web>
<context-root>/</context-root>
<virtual-host>wildfly1-host</virtual-host>
<server-instance>default-server</server-instance>
</jboss-web>
- Metemos el fichero jboss-web.xml dentro del paquete struts-blank-wildfly1.war a la altura de WEB-INF/ (a la misma altura que web.xml).
Notas:
- Como podéis ver, el fichero jboss-web.xml no contiene la directiva server-instance en JBoss AS / EAP.
- Si queréis desplegarla en un contexto diferente al raíz (/) basta con que cambiéis el contexto; por ejemplo poniendo <context-root>/wildfly</context-root> accederéis a la aplicación en http://wildfly1.neodoo.es/wildfly/
Ahora procedemos a confeccionar la aplicación struts-blank-wildfly2.war que se asociará a http://wildfly2.neodoo.es:8080/ :
- Copiamos el fichero struts-blank-1.3.10.war con el nombre struts-blank-wildfly2.war.
- Creamos el siguiente fichero jboss-web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<jboss-web>
<context-root>/</context-root>
<virtual-host>wildfly2-host</virtual-host>
<server-instance>default-server</server-instance>
</jboss-web>
- Metemos el fichero jboss-web.xml dentro del paquete struts-blank-wildfly2.war a la altura de WEB-INF/ (a la misma altura que web.xml).
Y ojo al siguiente bug :
- ¡ No dejéis comentarios dentro del fichero jboss-web.xml (del tipo <!– xxx –>) ya que el servidor Wildfly no lo lee correctamente ! Un quebradero de cabeza que nos ha supuesto horas de sufrimiento …
Despliegue de las aplicaciones
Ahora sólo nos queda desplegar los dos ficheros war o bien a través de la herramienta web o directamente desde línea de comando (herramienta CLI).
En nuestro caso, los desplegaremos dentro del grupo web-server y posteriormente tendremos acceso a cada aplicación desde http://wildfly1.neodoo.es:8080 y http://wildfly2.neodoo.es:8080 .
Otra notita:
- Si no tenéis configurado los subdominios wildfly1.neodoo.es y wildfly2.neodoo.es en un servidor DNS, basta con que los linuxeros pongáis estos nombres en el fichero /etc/hosts .
0 comentarios