首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何定义没有openshift CLI的WildFly可引导JAR的数据源属性?

如何定义没有openshift CLI的WildFly可引导JAR的数据源属性?
EN

Stack Overflow用户
提问于 2021-04-08 06:58:29
回答 1查看 787关注 0票数 2

所以通常您可以使用standalone.xml来完成这个任务,但是野蝇可引导JAR似乎没有一个standalone.xml,因为它都在一个JAR中。

JBoss提供的示例假设您只会出于某种原因使用OpenShift,并使用一些神秘的OpenShift CLI命令(如下所示),这些命令以某种方式在正确的位置创建正确的文件。https://github.com/wildfly-extras/wildfly-jar-maven-plugin/tree/4.0.0.Final/examples/postgresql

代码语言:javascript
复制
oc new-app --name database-server \
  --env POSTGRESQL_USER=admin \
  --env POSTGRESQL_PASSWORD=admin \
  --env POSTGRESQL_DATABASE=sampledb \
  postgresql

但是,没有使用该命令创建的配置文件(或者他们没有签入),文档也没有提到如何对非OpenShift项目执行同样的操作。

试图找到关于如何为非OpenShift部署配置(postgres)数据源的任何信息。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-09 15:08:24

这是我自己做的实验。关于可引导的jars的WildFly文档仍然非常少,而且缺少很多需要大量猜测/实验的细节。

虽然有一个覆盖,可以通过环境变量指定DB信息,但这有点麻烦,不允许您定义多个数据源,也不能指定JNDI名称。相反,我使用了一个CLI脚本,它被输入到jar构建器插件中。

datasource.cli

代码语言:javascript
复制
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 (片段)

代码语言:javascript
复制
<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配置中,注意的项目包括

  1. 用于数据源包。虽然我没有测试这个是否需要..。也许驱动层是唯一需要的。如果你有时间的话值得一试。
  2. 指定postgresql驱动程序值的。这是必需的,没有它,启动将抱怨在CLI脚本运行时缺少一个驱动程序。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66998791

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档