net instalar descargar caracteristicas java java-ee glassfish glassfish-3

java - instalar - Ruta de contexto para la aplicación web en Glassfish 3.1.2.2



glassfish.java.net download (1)

Estoy tratando de encontrar una forma de especificar explícitamente la ruta de contexto de una aplicación web que se está implementando en Glassfish 3.1.2.2, pero hasta ahora no he tenido suerte. ¿Alguien puede proporcionar una guía sobre esto? El trasfondo de esto está a continuación:

Tengo una aplicación web que consiste en dos proyectos separados de Netbeans (7.0). El primero es un servicio web y se llama FooWS. El segundo es una aplicación web con interfaz de usuario que utiliza el servicio web FooWS. Se llama FooApp.

Recientemente actualicé glassfish a 3.1.2.2 con la esperanza de resolver algún otro problema y ahora cuando implemente la aplicación FooWS, se implementa con éxito pero con la ruta de contexto / web en lugar de / FooWS. Esto no es algo que me interese especialmente, excepto cuando trato de implementar FooApp, glassfish también intenta implementarlo en / web, lo que da lugar al siguiente error:

SEVERE: Excepción al cargar la aplicación: java.lang.Exception: WEB0113: El servidor virtual [servidor] ya tiene un módulo web [FooWS] cargado en [/ web]; por lo tanto, el módulo web [FooApp] no se puede cargar en esta ruta de contexto en este servidor virtual.

El web.xml para FooApp se ve de la siguiente manera:

<?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> <context-param> <param-name>defaultWebRootId</param-name> <param-value>2631</param-value> </context-param> <listener> <listener-class>com.foo.service.AppInitialiser</listener-class> </listener> <session-config> <session-timeout> 30 </session-timeout> </session-config> </web-app>

La configuración para FooWS es similar. Ninguno de los dos contiene ninguna mención del contexto de la aplicación, por lo que mi expectativa es que deba usar / FooWS en lugar de usar de forma predeterminada / web.

La solución obvia parece ser anular la ruta de contexto en el web.xml pero no puedo encontrar ninguna forma de hacerlo. ¿Alguna sugerencia?

Solo un poco de seguimiento, accidentalmente cambié la ruta de contexto a / FooW. Esta vez se implementó como se esperaba en / FooW. Cambiando de nuevo si / FooWS hace que el comportamiento anterior regrese, es decir, se implementa nuevamente en / web. Parece que tengo una solución por el momento.

Para el beneficio de cualquiera que siga esto, obtuve el mismo comportamiento con 3.1.2. Ahora he vuelto a 3.1 (b43) y se comporta como se esperaba.


Agregue un archivo glassfish-web.xml en la misma carpeta que web.xml

<!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 error-url=""> <context-root>/FooWS</context-root> </glassfish-web-app>