2011-10-17 16 views
5

que tienen un oído con una guerra que estoy desplegando en GlassFish 3.1GlassFish 3.1, ¿cómo implementar un EAR con WAR en la raíz del servidor?

Actualmente, la aplicación se ejecuta en localhost: 8080/miaplicacion/index.jsf

quiero que se ejecute en localhost: 8080/index.jsf

para lograr esto, he cambiado el aplicacion.xml en el EAR del "miaplicacion" contextRoot a contextRoot = "/"

Cuando despliego mi oído usando la interfaz de usuario de administración de GlassFish, me da una error de implementación, cuando trato de navegar a la interfaz de usuario de administrador, me muestra la página de inicio predeterminada de GlassFish. Para recuperarlo, tengo que anular la implementación de mi EAR usando asadmin desde la línea de comando y luego hacer un reinicio de dominio para reiniciar el servidor.

Mi teoría es que mi aplicación y la interfaz de usuario de GlassFish se ejecutan en la raíz "/".

PREGUNTA: ¿Cuál es la forma correcta de implementar mi aplicación web en la raíz de GlassFish 3.1? ¿O es esta mala práctica?

Gracias!

Rob

+0

Creo que seguí sus 'pasos' y no puedo reproducir el problema estás viendo. Estoy en Mac OS X 1.7.2, GF 3.1.1. Tus pasos funcionan bien para mí ... aunque son un poco imprecisos y podría estar interpretándolos incorrectamente, por lo tanto no puedo replicar el problema. Más detalles sobre el 'me da un error de despliegue' podrían ser una adición útil a esta pregunta. – vkraemer

+0

@vkraemer - Comencé una nueva pregunta más detallada para mi problema, visítelo, cualquier ayuda es muy apreciada. http://stackoverflow.com/questions/7878645/errors-deploying-war-in-root-context-on-glassfish-3-1 –

Respuesta

2

Rob,

Si su despliegue desde la línea de comandos que puede utilizar un argumento para asadmin para elegir la raíz de contexto. Esto nunca me ha dado el problema que describes.

$ implementación de asadmin --contextroot "/" your.war

Su otra opción es en la configuración de servidor virtual para elegir un módulo web por defecto, pero personalmente prefiero sólo la creación de una aplicación a /.

Kevin

+0

No estoy seguro de que --contextroot funcione con un archivo ear ... – vkraemer

+0

@ Kevin - He detallado mi problema más a fondo, por favor tome una toma: http://stackoverflow.com/questions/7878645/errors-deploying-war-in-root-context-on-glassfish-3-1 –

+0

doesn ' t trabajo para un EAR ... – Damian

3

La forma easisest está teniendo un glassfish-web.xml.

Esta es mi configuración que se encuentra en mi directorio WEB-INF.

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE glassfish-web-app PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 Servlet 3.0//EN" "http://glassfish.org/dtds/glassfish-web-app_3_0-1.dtd"> 
<glassfish-web-app> 
    <context-root>/myapplication</context-root> 
</glassfish-web-app> 

Como nota, se debe considerar utilizar la guerra en lugar de la oreja. Glassfish 3.x, que es la implementación de referencia para el JavaEE6, tiene una función para usar war con EJB. Es decir que puede usar fácilmente su guerra con su ejb sin paquete de orejas. No solo disminuirá significativamente el tamaño de su aplicación, sino que también le permitirá tener una buena práctica en términos de problemas de carga de clases, huella de memoria, etc.

Cuestiones relacionadas