2015-04-17 47 views
1

我使用的Apache Tomcat 8.在Tomcat 8 server.xml配置文件中,有沒有一種方法使用變量替換動態地配置資源的路徑?

$CATALINA_HOME/conf/server.xml,我有一個ResourceGlobalNamingResources標籤內:

<Resource name="jdbc/myderby" 
      auth="Container" 
      type="javax.sql.DataSource" 
      username="" 
      password="" 
      driverClassName="org.apache.derby.jdbc.EmbeddedDriver" 
      url="jdbc:derby:myderby;create=true"/> 

但我想用我的web應用程序上下文路徑爲基礎路徑到我的數據庫中參數url。例如:

url="jdbc:derby:${WEBAPP_HOME}/WEB-INF/db/myderby;create=true" 

這是可能的,如果是這樣,什麼是我需要的${WEBAPP_HOME}設置屬性?

回答

3

從Tomcat 8 documentation

Tomcat配置文件被格式化爲無模式XML;元素和屬性區分大小寫。 支持Apache Ant式變量替換;具有名稱propname的系統屬性可以使用語法$ {propname}在配置文件中使用。所有系統屬性均可用,包括使用-D語法設置的,由JVM自動提供的那些設置以及在$ CATALINA_BASE/conf/catalina.properties文件中配置的那些

因此可以使用類似$ {WEBAPP_HOME}的變量。 conf/catalina.properties似乎是一個設置它的好地方。 或者你可以使用已定義的變量$ {} catalina.base表達路徑Derby數據庫:

<Resource ... url="jdbc:derby:${catalina.base}/webapps/mycontext/WEB-INF/db/myderby;create=true"/>

相關問題