Seleccionar página

Cómo configurar el Virtual Host y el contexto de las aplicaciones WAR en WildFly 8

por | Ago 14, 2014 | Java, JBoss AS / JBoss EAP / WildFly

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

Enviar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Blog de Neodoo Microsystems
Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles. Puedes encontrar más información en nuestra Política de privacidad y Política de cookies.