【发布时间】:2017-09-05 23:31:03
【问题描述】:
我在部署应用程序时使用的当前工作流程是在 wildfly 中创建一个 JDBC 数据源,然后将该数据源添加到 persistence.xml 文件中。
有没有办法在不修改persistence.xml的情况下设置应用程序在运行时使用的数据源?
这个问题的关键是试图了解如何在构建时消除应用程序与部署环境之间的任何耦合。
【问题讨论】:
标签: java wildfly wildfly-10
我在部署应用程序时使用的当前工作流程是在 wildfly 中创建一个 JDBC 数据源,然后将该数据源添加到 persistence.xml 文件中。
有没有办法在不修改persistence.xml的情况下设置应用程序在运行时使用的数据源?
这个问题的关键是试图了解如何在构建时消除应用程序与部署环境之间的任何耦合。
【问题讨论】:
标签: java wildfly wildfly-10
最简单的解决方案是创建数据源,然后将其设置为默认数据源。那么你甚至不需要在你的persistence.xml中设置数据源。
例如,以下 CLI 命令将创建数据源并设置默认数据源 (java:comp/DefaultDataSource)。
embed-server
# Configure the driver
/subsystem=datasources/jdbc-driver=org.postgresql:add(driver-name=org.postgresql, driver-module-name=org.postgresql, driver-xa-datasource-class-name=org.postgresql.xa.PGXADataSource)
# Configure the data source
/subsystem=datasources/data-source=postgresql:add(driver-name=org.postgresql, jndi-name="java:/jdbc/PostgresDS", enabled=true, connection-url="jdbc:postgresql://localhost/testdb", user-name=user, password="password")
# Change the default data source name java:comp/DefaultDataSource
/subsystem=ee/service=default-bindings:write-attribute(name=datasource, value=java:/jdbc/PostgresDS)
stop-embedded-server
然后在persistence.xml 中删除<jta-data-source> 标签。
【讨论】: