如何将PostgreSQL数据源添加到WildFly 9.0?

cze*_*rny 9 java postgresql datasource jdbc wildfly

我在mastertheboss.com上试过教程:

  1. ./jboss-cli.sh
  2. module add --name=org.postgres --resources=/tmp/postgresql-9.3-1101.jdbc41.jar --dependencies=javax.api,javax.transaction.api
  3. /subsystem=datasources/jdbc-driver=postgres:add(driver-name="postgres",driver-module-name="org.postgres",driver-class-name=org.postgresql.Driver)
  4. data-source add --jndi-name=java:/PostGreDS --name=PostgrePool --connection-url=jdbc:postgresql://localhost/postgres --driver-name=postgres --user-name=postgres --password=postgres

本教程适用于WildFly 8.2,但它不适用于WildFly 9.0.第3步失败并显示错误消息:

{
"outcome" => "failed",
"failure-description" => "WFLYJCA0041: Failed to load module for driver [org.portgres]",
"rolled-back" => true
}
Run Code Online (Sandbox Code Playgroud)

如何将Postgres数据源添加到WildFly 9.0?

小智 8

我遇到了与WildFly 9相同的错误和行为.我是WF的完全新手,但经过一些研究后我发现问题在于模块命名.如果我做得好,模块中的实际包名称将用于解析module.xml的路径.
我已将步骤更改为以下内容并且有效:

module add --name=org.postgresql --slot=main --resources=/usr/local/lib/postgresql-9.4-1201.jdbc4.jar --dependencies=javax.api,javax.transaction.api

/subsystem=datasources/jdbc-driver=postgres:add(driver-name="postgres",driver-module-name="org.postgresql",driver-class-name=org.postgresql.Driver)
Run Code Online (Sandbox Code Playgroud)


Mir*_*ciu 7

我正在码头上运行wildfly 10:

#ADD DATASOURCES
RUN mkdir -p $JBOSS_HOME/modules/org/postgres/main
COPY files/postgresql-9.4.1208.jre7.jar $JBOSS_HOME/modules/org/postgres/main/
COPY files/module.xml $JBOSS_HOME/modules/org/postgres/main/
COPY files/standalone.xml $JBOSS_HOME/standalone/configuration
Run Code Online (Sandbox Code Playgroud)

module.xml的位置

<module xmlns="urn:jboss:module:1.1" name="org.postgres">
    <resources>
        <resource-root path="postgresql-9.4.1208.jre7.jar"/>
    </resources>
    <dependencies>
        <module name="javax.api"/>
        <module name="javax.transaction.api"/>
        <module name="javax.servlet.api" optional="true"/>
    </dependencies>
</module>
Run Code Online (Sandbox Code Playgroud)

而独立包含驱动程序:

<driver name="postgresql" module="org.postgres">
    <xa-datasource-class>org.postgresql.Driver</xa-datasource-class>
</driver>
Run Code Online (Sandbox Code Playgroud)

然后数据源可以是:

<datasource jndi-name="java:jboss/datasources/PostgresDS" pool-name="PostgresDS" enabled="true" use-java-context="true">
    <connection-url>jdbc:postgresql://ndis-db:5432/postgres</connection-url>
        <driver>postgresql</driver>
        ...
Run Code Online (Sandbox Code Playgroud)

请注意,我的ndis-db是一个postgres docker.在你的情况下可以是localhost.

我如何最终得到你提到的错误:1.错误地拼写错误的文件名2./modules/org ...等包含错误3. module.xml拼写错误为modules.xml 4. ...