如何使用server.xml配置我的tomcat应用程序?

时间:2016-08-21 14:01:05

标签: java tomcat web-applications

我有一个部署在Tomcat中的webapp。

webapp使用db.properties文件来解析dataSource中的applicationContext.xml bean属性:

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

在此示例中,db.properties文件位于Tomcat的公共/conf/目录中。

我希望不要将它放在通用/conf/中,但是在一个单独的子目录中,如/conf/myapp/myapp应该不是在应用程序源中配置,而是在Tomcat设置中配置,比如server.xml

我需要它来部署这个webapp的两个副本,但它们应该适用于不同的数据库。

我该怎么做?

更新

这是service <{1}} server.xml阻止来自<Service name="train"> <Connector port="8888" protocol="HTTP/1.1" connectionTimeout="20000" compression="on" compressionMinSize="2048" noCompressionUserAgents="gozilla, traviata" compressableMimeType="text/html,text/xml,text/plain,text/css,text/javascript,text/json,application/x-javascript,application/javascript,application/json"/> <Engine name="trainings" defaultHost="localhost"> <Host name="localhost" appBase="webapps"> <Context docBase="trs" path="" /> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs/train/int" prefix="access_log." suffix=".txt" pattern="%h %l %u %t &quot;%r&quot; %s %b" /> </Host> </Engine> </Service>

{{1}}

1 个答案:

答案 0 :(得分:0)

  1. <context:property-placeholder/>放在applicationContext.xml
  2. 中 {li> <Environment name="db.host" value="localhost" type="java.lang.String" override="false"/>位于Context部分中的server.xml中
  3. 只需在应用程序中使用$ {db.host}。