我嘗試在位於我的jpa-spring.xml
文件中的'PropertyPlaceholderConfigurer'中獲取Tomcat的server.xml
中指定的環境變量。如何在PropertyPlaceholderConfigurer中獲取tomcat環境變量
到目前爲止,設置如下所示:
Tomcat的server.xml
<Environment description="Identifies the server environement"
name="server-env"
type="java.lang.String"
value="dev" />
中WebContent/META-INF/context.xml
:
<Context>
<ResourceLink name="server-env" global="server-env" type="java.lang.String"/>
</Context>
這是WebContent/WEB-INF/web.xml
引用,如:
<resource-env-ref>
<description>Identifies server environement</description>
<resource-env-ref-name>server-env</resource-env-ref-name>
<resource-env-ref-type>java.lang.String</resource-env-ref-type>
</resource-env-ref>
<!-- Spring Integration -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/config/jpa-spring.xml
</param-value>
</context-param>
而在/WEB-INF/config/jpa-spring.xml
我試圖讓該變量作爲替代:
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>WEB-INF/config/db.${server-env}.properties</value>
</list>
</property>
</bean>
這是一個設置我放在一起使用從網絡上找到幾篇文章的信息。
不過,我得到了如下的錯誤...
Could not resolve placeholder 'server-env' in [WEB-INF/config/db.${server-env}.properties] as system property: neither system property nor environment variable found
05 Nov 2011 14:45:13,385 org.springframework.web.context.ContextLoader
ERROR Context initialization failed
org.springframework.beans.factory.BeanInitializationException: Could not load properties; nested exception is java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/config/db.${server-env}.properties]
...起tomcat的時候。
什麼是正確的方法來實現我在找什麼?
我知道這個問題類似於this和this的問題。但是,我甚至無法用這些答案中的信息弄清楚。
你正在使用哪個版本的Spring? – Santosh