gpt4 book ai didi

xml - Spring 的WebApproot

转载 作者:IT老高 更新时间:2023-10-28 13:04:48 33 4
gpt4 key购买 nike

我收到此错误消息

[ 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)不维护每个 webapp 的系统属性映射。当您不指定 webAppRootKey 时,Spring 将其默认为 webapp.root。由于您在同一个容器中运行两个应用程序,因此您尝试启动的第二个应用程序会看到 webAppRootKey 已设置(通过默认值),并引发错误。否则,webAppRootKey 将设置不正确,您最终可能会在另一个 Web 应用中看到来自一个 Web 应用的日志。

您可以使用 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 - Spring 的WebApproot,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5014651/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com