El webAppRootKey
es un parámetro de contexto que la primavera utiliza en un par de lugares. En este caso, está siendo utilizado por el Log4jWebConfigurer
. Se expone la raíz webapp como una propiedad del sistema que se puede utilizar en los archivos de configuración de log4j, algo como esto:
log4j.appender.testfile.File=${webapp.root}/WEB-INF/testlog.log
que usaría esto si, por alguna razón, querido para localizar sus registros con respecto a la raíz de su webapp .
El problema con el que se está encontrando es que algunos contenedores (notablemente Tomcat) no mantienen un mapeo por aplicación web de las propiedades del sistema. Cuando no especifica un webAppRootKey
, Spring lo predetermina a webapp.root
. Como está ejecutando dos aplicaciones en el mismo contenedor, la segunda aplicación que está intentando iniciar ve que el webAppRootKey
ya está configurado (por defecto) y arroja un error. De lo contrario, el webAppRootKey
se configuraría incorrectamente y podría terminar con los registros de una aplicación web en otra aplicación web.
puede especificar un webAppRootKey
diferentes utilizando parámetros de contexto en su web.xml
así:
<context-param>
<param-name>webAppRootKey</param-name>
<param-value>webapp.root.one</param-value>
</context-param>
Y
log4j.appender.testfile.File=${webapp.root.one}/WEB-INF/testlog.log
en su log4j. Esto debería encargarse del conflicto.
Ver http://drglennn.blogspot.com/2008/08/problems- with-webapproot-system.html y http://forum.springsource.org/archive/index.php/t-32873.html para soluciones – JoseK