如何通过使用springboot和tomcat服务器资源数据库为liquibase任务配置JNDI数据源?

问题描述 投票:2回答:1

我正在与3.5.3版本的liquibase一起使用Spring boot Application,在其中我需要为liquibase任务和应用程序执行配置两个不同的JNDI数据源。我在tomcat server.xml文件中创建了两个不同的JNDI数据源

<Resource name="JDBC/DSAdmin"
         global="jdbc/DSAdmin"
         auth="Container"
         factory="com.zaxxer.hikari.HikariJNDIFactory"
         type="javax.sql.DataSource"
         driverClassName="com.mysql.jdbc.Driver"
         jdbcUrl="jdbc:mysql://localhost:3306/dbname"
         username="admin"
         password="admin"
         minimumIdle="5" maximumPoolSize="50" connectionTimeout="300000" maxLifetime="1800000" />
and 
<Resource name="jdbc/DS"
         global="jdbc/DS"
         auth="Container"
         factory="com.zaxxer.hikari.HikariJNDIFactory"
         type="javax.sql.DataSource"
         driverClassName="com.mysql.jdbc.Driver"
         jdbcUrl="jdbc:mysql://localhost:3306/database"
         username="root"
         password="root"
         minimumIdle="5" maximumPoolSize="50" connectionTimeout="300000" maxLifetime="1800000" />

我需要使用jdbc / DSAdmin连接池运行liquibase任务,并使用jdbc / DS连接池运行应用程序。

但是liquibase版本3.5.3不提供任何属性来使用tomcat服务器资源指定数据源。

在application.properties文件中,我已经配置了spring.datasource.jndi-name = java:comp/env/jdbc/DSAdmin

类似地,我想配置liquibase.datasoure=java:comp/env/jdbc/DS

这是我的context.xml文件

<ResourceLink name="jdbc/DS" 
     global="jdbc/DS"
     auth="Container"
type="javax.sql.DataSource" /> 

<ResourceLink name="jdbc/DSAdmin" 
     global="jdbc/DSAdmin"
     auth="Container"
type="javax.sql.DataSource" />
apache spring-boot jndi tomcat8 liquibase
1个回答
0
投票

嗨,我想知道你是如何解决这个问题的。我现在也遇到了同样的问题

© www.soinside.com 2019 - 2024. All rights reserved.