我有Tomcat(7或8)有两个虚拟主机,两个应用程序克隆应该可以工作。
每个应用程序都应该拥有自己的配置文件。它不应该放在* .war中 - 只能放在服务器环境中的某个地方。
当我在Tomcat中有一个应用程序时,我可以将配置文件放在
中<context:property-placeholder location="file:${catalina.home}/conf/myapp.properties"/>
由于applicationContext.xml,Spring会找到我的配置文件。
但是当我有两台主机时,我应该将配置文件放在不同的目录中。 我在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)
为什么?
答案 0 :(得分:1)
您配置的环境属性是JNDI查找属性。 我不认为它可以被视为正常的系统属性,就像在 “CATALINA_HOME”。
环境 - 配置将通过JNDI InitialContext公开的标量环境条目的名称和值(相当于在Web应用程序部署描述符中包含<env-entry>
元素)。