所以通常你可以使用standalone.xml来做到这一点,但是wildfly可启动JAR似乎没有standalone.xml,因为它都在一个JAR中。
JBoss 提供的示例假设您仅出于某种原因使用 OpenShift,并使用一些晦涩的 OpenShift CLI 命令(如下),该命令以某种方式在正确的位置创建正确的文件。 https://github.com/wildfly-extras/wildfly-jar-maven-plugin/tree/4.0.0.Final/examples/postgresql
oc new-app --name database-server \
--env POSTGRESQL_USER=admin \
--env POSTGRESQL_PASSWORD=admin \
--env POSTGRESQL_DATABASE=sampledb \
postgresql
但是,没有使用该命令创建配置文件(或者他们没有签入),并且文档没有说明如何对非 OpenShift 项目执行相同操作。
尝试查找有关如何为非 OpenShift 部署配置(postgres)数据源的任何信息。
我自己通过一些实验发现了这一点。关于可启动 jar 的 WildFly 文档仍然非常少,并且缺乏大量需要大量猜测/实验的细节。
虽然有一个覆盖层可以让您通过环境变量指定数据库信息,但这有点老套,并且不允许您定义多个数据源,也不能指定 JNDI 名称。相反,我使用了一个 CLI 脚本,该脚本被输入到 jar 构建器插件中。
数据源.cli
data-source add --name=<name> --jndi-name=java:jboss/datasources/<schema> --driver-name=postgresql --connection-url=jdbc:postgresql://localhost:5432/<db> --user-name=<user> --password=<pass>
确保使用您自己的占位符值
pom.xml(片段)
<configuration>
<cli-sessions>
<cli-session>
<script-files>
<script>scripts/datasource.cli</script>
</script-files>
<resolve-expressions>true</resolve-expressions>
</cli-session>
</cli-sessions>
<feature-packs>
<feature-pack>
<location>wildfly@maven(org.jboss.universe:community-universe)#23.0.0.Final</location>
</feature-pack>
<feature-pack>
<groupId>org.wildfly</groupId>
<artifactId>wildfly-datasources-galleon-pack</artifactId>
<version>1.2.2.Final</version>
</feature-pack>
</feature-packs>
<layers>
<layer>jaxrs-server</layer>
<layer>postgresql-driver</layer>
</layers>
</configuration>
在上面的XML配置中,需要注意的事项是