ßeta perpetua

El blog personal de Juan Manuel Barroso

Contexto de una aplicación en JBOSS

2 Comments »

El contexto raíz de una aplicación web determina las URLs que serán delegadas por el servidor a nuestra aplicación, esto quiere decir que si tenemos un contexto raiz myapplication el servidor delegará a nuestra aplicación todas las peticiones del tipo myapplication/*.

El contexto raíz se carga durante el despliegue, y dependiendo del tipo de artefacto (EAR,  WAR) puede encontrarse en lugares diferentes.

Cuando estamos trabajando con un EAR el contexto de la aplicación debe ser especificado en el fichero application.xml, específicamente en la etiqueta <context-root/> del módulo correspondiente:

<application xmlns="http://java.sun.com/xml/ns/j2ee" version="1.4"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com /xml/ns/j2ee
                             http://java.sun.com/xml/ns/j2ee/application_1_4.xsd">
    <display-name>MyApplication</display-name>
 
    <module>
        <web>
            <web-uri>myApplication.war</web-uri>
            <context-root>myNewContext</context-root>
        </web>
    </module>
 
    <module>
        <ejb>my-library.jar</ejb>
    </module>
 
</application>

Si nuestra aplicación va a ser desplegada en un .war directamente, debemos modificar el fichero jboss-web.xml de la carpeta WEB-INF:

<jboss-web>
    <context-root>myNewContext</context-root>
</jboss-web>

De esta manera las peticiones a myNewContext/* serán delegadas a nuestra aplicación.

Si no especificamos un contexto al WAR, se usará el mismo nombre del fichero .war. Por ejemplo, para el desplegable otra-aplicacion.war se usará el contexto otra-aplicacion.

Esto puede ser útil cuando necesitemos publicar nuestra aplicación en una ruta del tipo: producto/consolas/myAplicacion.

Un caso real donde tuve que cambiar el contexto de una aplicación, fue desplegando un aplicación Grails que delegaba la parte de seguridad en SpringSecurity y sólo podía ser accesible desde una redirección de Apache. El problema era que el plugin no era capaz de redirigir desde la página de login a la primera página de la aplicación. Como solución inmediata cambie el contexto de la aplicación para que coincidiera con la URL de la redirección y problema solucionado.
Probablemente el plugin podía ser configurado para solucionar el problema, pero en aquel momento la aplicación debía estar en producción sin retrasos.

Probado con JBOSS 5 y Grails 1.3.7

2 Responses

Es por este motivo, que resulta muy necesario favorecer los dos tipos de actividades, la de la rama izquierda donde el alumno se plantea preguntas y, al mismo tiempo las actividades de la rama derecha, como las de tomar nota, efectuar registros, transformaciones, afirmaciones de conocimiento, de valor etc. Que son formas de llegar a las respuestas que toda pregunta requiere. De esta manera, vemos que el aprendizaje se hace posible, cuando se pueden hallar las conexiones entre las buenas preguntas y las buenas respuestas. En otras palabras, podemos decir que aprender, en el contexto de la educación consiste en facilitar la aparición de buenas preguntas que permitan establecer buenas respuestas.

  • Честно говоря, особо эту тему не раскапывал. При беглом поиске хороших бесплатных альтернатив не нашлось. Разве что , но он очень сильно уступает JRebel по функционалу и удобству использования. Пока искал : Now all very well, isn’t there a free alternative? Well yes, the basic fuicontn it does is fairly simple, and there’s something called Hotswap which is free. However the money is in the details, Java is more complicated nowadays than just loading a class, modern design pattern has more dependencies such inheritance, interfaces, annotations etc. All the basic fuicontn or Hotswap can do is allow us to modify the inners of an existing method which is not quite enough. JRebel not only support these design pattern, they’ve even went all the way to support technologies ‘as a whole’ such as JSF, Hibernate, EJBs, Guice etc… Now this requires a lot of development as most Java developer knows, using any of these library can be a beast, let alone working along side it. So I can see why the high licence premium

  • Leave a Reply to Rolly