[ SEVERE: Exception sending context initialized event to listener instance of class org.springframework.web.util.Log4jConfigListener
java.lang.IllegalStateException: Web app root system property already set to different value: ‘webapp.root’ = [C:\Users\jaanlai\Documents\NetBeansProjects\absSovellus\build\web] instead of [C:\Users\Administrator\Documents\NetBeansProjects\keycard2\build\web] – Choose unique values for the ‘webAppRootKey’ context-param in your web.xml files!
这很奇怪,因为我的文件中没有定义任何webAppRootKey。它是什么?
log4j.appender.testfile.File=${webapp.root}/WEB-INF/testlog.log
如果由于某种原因想要找到相对于您的webapp根目录的日志,您将使用这个。
你遇到的问题是一些容器(特别是Tomcat)不维护系统属性的per-webapp映射。当您不指定webAppRootKey时,Spring默认将其设置为webapp.root。由于您在同一个容器中运行两个应用程序,因此您尝试启动的第二个应用程序会看到webAppRootKey已设置(通过默认设置),并引发错误。否则,webAppRootKey将设置不正确,您可以结束与来自另一个webapp中的一个webapp的日志。
您可以使用web.xml中的上下文参数指定不同的webAppRootKey,如下所示:
<context-param> <param-name>webAppRootKey</param-name> <param-value>webapp.root.one</param-value> </context-param>
和
log4j.appender.testfile.File=${webapp.root.one}/WEB-INF/testlog.log
在你的log4j。这应该照顾冲突。