2011-04-18 18 views
12

Estoy usando JBoss 6.0.¿Cómo dirigir automáticamente a "mi aplicación web" desde el contexto "raíz (/)" en JBoss?

he desplegado mi aplicación web: myapp.ear bajo la tela-contexto: "/prueba". Así que en el navegador-url si escribo "http://localhost:8080/test/", obtengo mi página de inicio de sesión (myLogin.jsp).

Dado que existe mi guerra dentro de un archivo EAR, he especificado la raíz de contexto en el archivo aplicacion.xml utilizando un elemento de context-root en el interior del módulo web - es decir,

<module> 
    <web> 
     <web-uri>myWeb.war</web-uri> 
     <context-root>/test</context-root> 
    </web> 
</module> 

Mi pregunta es cómo auto directo usuario a mi aplicación web desde "contexto raíz"?

quiero decir que si los tipos de usuario "http://localhost:8080/", esperaría que la página de inicio de sesión de mi aplicación web para cargar (en lugar de por defecto de JBoss página index.html de ROOT.war).

He eliminado existente index.html de {JBOSS} \ server \ default \ deploy \ ROOT.war y creó un login.jsp allí. Ahora puedo ver que "login.jsp" se invoca cuando escribo http://localhost:8080/. Pero no puedo redirigir la solicitud del usuario a la página de inicio de sesión de mi aplicación web.

En ese login.jsp, lo he intentado con: <jsp:forward page="/test" />, pero obtengo el error: "HTTP Status 404 -/test".

Si invoco como <jsp:forward page="/test/myLogin.jsp" /> sigo recibiendo el mismo error 404.

¿Alguien puede sugerir cómo lograr la auto-dirección a mi aplicación web desde el contexto raíz?

Respuesta

24

Debe mantener index.html en la carpeta de implementación predeterminada y reenviar la solicitud a su módulo web.

Por ejemplo van siguiendo la línea sólo en index.html

<META HTTP-EQUIV="Refresh" CONTENT="0; URL=/test/"/> 
+0

Sí - que funciona !! Gracias por su solución simple y elegante "SUPER SUPER SUPER". Apreciar mucho – javauser71

+0

¡¡¡Muchas gracias !!! ¡Me alegró el día! –

3

La respuesta de Senthil funciona bien, pero el usuario puede ver el redireccionamiento real realizado por el navegador (página parpadea). La redirección también se puede realizar con la función de reescritura [1, 2] del servidor JBoss, que admite el redireccionamiento HTTP con códigos 30x (sin parpadeo).

Puede agregar la reescritura a su aplicación directamente (web.xml, jboss-web.xml) y especificar las reglas de redirección en rewrite.properties - no se muestra aquí.

O puede modificar la configuración del servidor por sí mismo sin tocar la aplicación original. Encuentro esta solución útil porque la aplicación se deja intacta.

Caso de uso: Usamos esto para el despliegue EJBCA (no es nuestra aplicación), establece su raíz de contexto en /ejbca.Queremos preservar el proceso de implementación predeterminado proporcionado por el script empaquetado ant mientras que al mismo tiempo desearíamos agregar un redireccionamiento de / a /ejbca como algún tipo de valor predeterminado, para facilitar el uso. Si el usuario desea cambiarlo, se hace simplemente modificando standalone.xml sin necesidad de volver a implementar toda la aplicación.

Editar standalone.xml:

<subsystem xmlns="urn:jboss:domain:web:2.2" default-virtual-server="default-host" native="false"> 
    <virtual-server name="default-host" enable-welcome-root="true"> 
     <alias name="localhost"/> 
     <rewrite pattern="^/$" substitution="/test" flags="L,QSA,R" /> 
    </virtual-server> 
</subsystem> 
+0

Esto es realmente elegante. ¡Multa! Funciona para mí (pero xmls = "urna: jboss: dominio: web: 2.2" en mi caso) – kaleemsagard

Cuestiones relacionadas