如何在不使用 openshift CLI 的情况下定义 WildFly 可启动 JAR 的数据源属性?

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

所以通常你可以使用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)数据源的任何信息。

java postgresql jboss wildfly
1个回答
3
投票

我自己通过一些实验发现了这一点。关于可启动 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配置中,需要注意的事项是

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