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=abcd

JAVA_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

回到顶部