在Wildfly中配置已部署应用程序的数据源,而无需修改persistence.xml

时间:2017-09-05 23:31:04

标签: java wildfly wildfly-10

我在部署应用程序时使用的当前工作流是在wildfly中创建JDBC数据源,然后将该数据源添加到persistence.xml文件中。

有没有办法在不修改persistence.xml的情况下设置应用程序在运行时使用的数据源?

这个问题的关键是试图了解如何在构建时删除应用程序与部署环境之间的任何耦合。

1 个答案:

答案 0 :(得分:0)

最简单的解决方案是创建数据源,然后将其设置为默认数据源。那么您甚至不需要在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>代码。