tho*_*nor 10 java tomcat environment-variables 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" />
Run Code Online (Sandbox Code Playgroud)
这非常有效.
但是url是一个硬编码的路径 /home/PUID/tm/control/JtmDB
当它投入生产时,路径的PUID部分将在众多系统中不同.我有一个环境变量集export PUID=abcd
应用程序的其余部分可以使用类似System.getenv( )或${env:PUID}适当的东西.
一切都很好.
我的问题很简单:如何在context.xml中创建一个可以从环境变量中读取的变量?
我终于发现了我实际上需要在这里做的事情……最终很简单。
我在运行时将Java参数传递给Tomcat,如下所示。
我添加了以下内容 setenv.sh
export PUID=abcd
JAVA_OPTS=-Dpuid=${PUID}
Run Code Online (Sandbox Code Playgroud)
然后编辑我的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" />
Run Code Online (Sandbox Code Playgroud)
因此,现在我的Tomcat安装将读取此内容,并且能够为每个不同的PUID使用不同的路径。
| 归档时间: |
|
| 查看次数: |
5787 次 |
| 最近记录: |