Tomcat 8-context.xml在数据源中使用环境变量
我有一个使用数据源的Tomcat 8项目(请参见下文)
<Resource auth="Container" name="jdbc/JtmDS"
driverClassName="org.apache.derby.jdbc.EmbeddedDriver"
type="javax.sql.DataSource"
username="xfer"
password="xfer10"
url="jdbc:derby:/home/PUID/tm/control/JtmDB"
initialSize="25"
maxTotal="100"
maxIdle="30"
maxWaitMillis="10000"
removeAbandonedOnBorrow="true"
removeAbandonedTimeout="20" />
这工作得很好。
但是,URL是硬编码的路径 /home/PUID/tm/control/JtmDB
当它投入生产时,路径的PUID部分将在众多系统中有所不同。我设置了一个环境变量export PUID=abcd
,其余的应用程序都可以使用System.getenv( )
或${env:PUID}
适当的方法。
这些都工作正常。
我的问题非常简单:如何使context.xml中的PUID值成为可以从环境变量读取的变量?
回答:
我终于发现了我实际上需要在这里做的事情……最终很简单。
我在运行时将Java参数传递给Tomcat,如下所示。
我添加了以下内容 setenv.sh
export PUID=abcdJAVA_OPTS=-Dpuid=${PUID}
然后编辑我的context.xml,如下所示
<Resource auth="Container" name="jdbc/JtmDS"
driverClassName="org.apache.derby.jdbc.EmbeddedDriver"
type="javax.sql.DataSource"
username="xfer"
password="xfer10"
url="jdbc:derby:/home/${puid}/tm/control/JtmDB"
initialSize="25"
maxTotal="100"
maxIdle="30"
maxWaitMillis="10000"
removeAbandonedOnBorrow="true"
removeAbandonedTimeout="20" />
因此,现在我的Tomcat安装将读取此内容,并且能够为每个不同的PUID使用不同的路径。
以上是 Tomcat 8-context.xml在数据源中使用环境变量 的全部内容, 来源链接: utcz.com/qa/425583.html