我们如何在不使用catalina.properties的情况下将属性传递给tomcat上下文

我们正在尝试使用tomcat映像将项目移至docker,并且对如何注入属性有些困惑。


现在,我们对数据库配置的配置权如下所示:


/opt/tomcat/conf/context.xml


<Context>


    <WatchedResource>WEB-INF/web.xml</WatchedResource>


    <ResourceLink name="DBCON"

                  global="jdbc/DBCON"

                  auth="Container"

                  type="javax.sql.DataSource"/>


    <Resource name="jdbc/DBCON"

              auth="Container"

              type="javax.sql.DataSource"

              driverClassName="oracle.jdbc.OracleDriver"

              url="${oracle.database.url}"

              username="${oracle.database.username}"

              password="${oracle.database.password}"

              maxActive="100"

              maxIdle="20"

              minIdle="5"

              maxWait="10000"/>


</Context>

/opt/tomcat/conf/catalina.properties


some other properties ...

...

...

oracle.database.url=jdbc:oracle:thin:@dev-database.com:1521:dev1

oracle.database.username=user

oracle.database.password=pass

我们希望使用被映射到服务器上某个位置的机密/some/loc/secrets/oracle.database.properties,但不要理解如何将这些机密注入到context.xml中,并且我们不想添加或编辑cataline.properties文件。我们计划将来迁移到春季启动,但是对于一些项目来说,这项工作非常艰巨。


我已经找到了<Envrionment>和的示例<PreResources>,但看不到如何告诉context.xml实际使用这些属性。


偶然的你
浏览 159回答 2
2回答

拉莫斯之舞

将数据库属性设置为系统变量:export JAVA_OPTS=$JAVA_OPTS -Doracle.database.username=user -Doracle.database.password=pass
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java