xml – WebApproot在Spring

前端之家收集整理的这篇文章主要介绍了xml – WebApproot在Spring前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我得到这个错误消息

[ 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。它是什么?

webAppRootKey是Spring在几个地方使用的上下文参数。在这种情况下,它正由Log4jWebConfigurer使用。它暴露webapp根作为系统属性,可以在log4j配置文件中使用,像这样:
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。这应该照顾冲突。

猜你在找的XML相关文章