gpt4 book ai didi

java - 如何为具有多个虚拟主机的 Tomcat 放置配置文件?

转载 作者:行者123 更新时间:2023-11-28 22:52:48 26 4
gpt4 key购买 nike

我有 Tomcat(7 或 8)和两个虚拟主机,两个应用程序克隆应该可以工作。

每个应用程序都应该有自己的配置文件。它不应该放在 *.war 中 - 只能放在服务器环境中的某个地方。

当我在Tomcat中只有一个应用程序时,我可以将配置文件放在

<context:property-placeholder location="file:${catalina.home}/conf/myapp.properties"/>

这就是 Spring 根据 applicationContext.xml 找到我的配置文件的方式。

但是当我有两个主机时,我应该将我的配置文件放在不同的目录中。我在 server.xml 的 Host 中添加了 Context 属性

<Context docBase="" path="XXX">
<Environment name="app.name" value="myapp1" type="java.lang.String" override="false"/>
</Context>

这里第一个主机获取环境变量“app.name”,如“myapp1”。第二台主机使用“myapp2”值获取此变量。我修改了

但是 Tomcat 会抛出 FileNotFoundException

Context initialization failed
org.springframework.beans.factory.BeanInitializationException: Could not load properties; nested exception is java.io.FileNotFoundException: ...\conf\${app.name}\myapp.properties (The system cannot find the path specified)

为什么?

最佳答案

您配置的环境属性是一个 JNDI 查找属性。我不认为它可以像在“CATALINA_HOME”。

环境 - 为将通过 JNDI InitialContext 公开给 Web 应用程序的标量环境条目配置名称和值(相当于在 Web 应用程序部署描述符中包含 <env-entry> 元素)。

关于java - 如何为具有多个虚拟主机的 Tomcat 放置配置文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35228168/

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