struts2 jboss5.x libs valuestack

struts2 - Mismo ValueStack para 2 aplicaciones diferentes de puntales



jboss5.x libs (1)

Estoy ejecutando mis aplicaciones sruts 2 (2.1.8.1) en un AS jboss (5.1.0-GA). Estoy colocando a.war y b.war en la misma ruta de acceso / server / default / deploy e im colocando los struts 2 libs en la ruta / server / default / lib.

No hay ningún mensaje de error en la aplicación o el servidor, pero cuando escribo http: // localhost: 8080 / b / por algún motivo estoy ingresando en la página b.jsp, los mensajes en los recursos de mensajes de la aplicación a.

Por lo tanto, mi pregunta es: ¿la colocación de los struts jar en / lib del servidor crea solo una instancia de la pila de valores que todas las aplicaciones tienen que usar igual? Si es así, ¿qué puedo hacer para tener diferentes instancias para cada aplicación, pero manteniendo las jarras en el servidor?

¿Debo devolver los frascos de puntales a la guerra?

Gracias

estoy usando la etiqueta struts para obtener el título del sistema

<s:property value="%{getText(''system.title'')}"/>

esta es mi configuración para a.war:

/WEB-INF/classes/a-message-resources.properties

system.title=Namefor system A

en struts.xml tengo

<constant name="struts.custom.i18n.resources" value="a-message-resources" />

Esta es la configuración de b.war

/WEB-INF/classes/b-message-resources.properties

system.title=Namefor system B

en struts.xml tengo

<constant name="struts.custom.i18n.resources" value="b-message-resources" />


Creo que podría saber qué está pasando aquí.

El valor de struts.custom.i18n.resources está tokenizado y cada token se agrega a LocalizedTextUtil.DEFAULT_RESOURCE_BUNDLES . Esta es una lista final estática de cadenas. Antes de agregar un elemento a la lista (como system.title), list.remove() se llama en el mismo token, eliminando las entradas anteriores para system.title.

Debido a que este campo es estático y porque permite solo una entrada para cada mensaje, la que se cargue primero, cualquiera de las propiedades de system.title, se sobreescribirá con la siguiente.

Además, parece que su instancia de JBoss está cargando esta clase de una manera que está causando que las variables estáticas sean compartidas. Es posible que pueda configurar su JBoss para cargar esta clase por separado para cada aplicación. Este podría ser un buen comienzo de lugar .