web-dev-qa-db-ja.com

WildFly 9.0にPostgreSQLデータソースを追加する方法

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
}
_

PostgresデータソースをWildFly 9.0に追加する方法

9
czerny

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)
8
ragelh

Dockerで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

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>

スタンドアロンにはドライバーが含まれています:

<driver name="postgresql" module="org.postgres">
    <xa-datasource-class>org.postgresql.Driver</xa-datasource-class>
</driver>

その場合、データソースは次のようになります。

<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>
        ...

私のndis-dbはpostgres dockerであることに注意してください。あなたの場合はローカルホストにすることができます。

私があなたによって言及されたエラーで終わった方法:1.ファイル名のスペルが間違っている2./modules/org ... etcにタイプミスが含まれている3. module.xmlのスペルがmodule.xmlと間違っている4. ...

7
Mircea Stanciu

非常にシンプルですが、JBOSS EAP/WilFlyを初めて使用する場合は、さらに時間がかかる可能性があります。以下の手順を使用して、データソースを作成します。

  1. Jboss-cli(Powerスクリプト)ファイルが存在するサーバーのbinフォルダーに移動します:right click on jboss-cli(power script file)--> Run with power Shell(コンソールが開きます)。

  2. PostgreSQL JDBCドライバーをコアモジュールとして追加

module add --name = com.postgresql --resources =/path/to/postgresql-9.3-1102.jdbc4.jar --dependencies = javax.api、javax.transaction.api

  1. PostgreSQL JDBCドライバーを登録します。

/subsystem=datasources/jdbc-driver=postgresql:add(driver-name=postgresql,driver-module-name=com.postgresql,driver-xa-datasource-class-name=org.postgresql.xa.PGXADataSource)

  1. PostgreSQLデータソースを追加します。

data-source add --name = PostgresDS --jndi-name = Java:jboss/PostgresDS --driver-name = postgresql --connection-url = jdbc:postgresql:// localhost:5432/postgresdb --user-name = admin --password = admin --validate-on-match = true --background-validation = false --valid-connection-checker-class-name = org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker- -exception-sorter-class-name = org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter

パスに注意してくださいpath/toこれは、ダウンロードされたPostgresql-jdbc.jarが存在するパスです。

2
Sai prateek

Postgres JDBCドライバーを配置フォルダーに配置します(単に配置します)。次に、CLIコンソールを使用して、次のコマンドを入力します。

data-source add --name=PostgresqlDS --jndi-name=Java:jboss/datasources/PostgresqlDS --driver-name=postgresql-9.4-1201.jdbc41.jar --connection-url=jdbc:postgresql://localhost:5432/test --user-name=USER --password=PASSWORD

ドライバーがjdbc4かどうかを確認します。

理由はわかりませんが、Webコンソールによるデータソースの追加が機能しません。 CLIで動作します。

JDBCドライバーを拡張するための正しいソリューションは、サーバーにモジュールとしてドライバーを追加することです。 WildFly 9では、cliコンソールを使用してそれを行うことができます。 これは、WildFly 8のように、JDBC jarファイル(xml付き)を「モジュール」フォルダーにコピーすることでは実行できません

コマンドを実行します。

module add --name=org.postgres --resources=postgresql-9.4-1201.jdbc41.jar --dependencies=javax.api,javax.transaction.api    

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

インストールされているドライバーを一覧表示するには、次のように入力します。

/subsystem=datasources:installed-drivers-list

ドライバーを使用すると、データソースを簡単に作成できます。

9.0最終バージョンを使用してください。 CRにはバグがあります。

よろしく、パヴェルM

1
Dentka Pawel M

ただ注意:私は、WildFly 10に対して tutorial から取得したCLIコマンドをテストしましたが、JDBCドライバーとデータソースの作成で正しく機能します。さらに、報告されたエラーログにモジュール名のスペルミス( "org.portgres")が含まれていることがわかります。

{
"outcome" => "failed",
"failure-description" => "WFLYJCA0041: Failed to load module for driver [org.portgres]",
"rolled-back" => true
}

免責事項:私はmastertheboss.comの所有者です

0

Java/jdbcのバージョンについては触れません。私は同じ問題を経験しましたが、それはドライバvs Java 1.8の不一致によるものでした。wildfly9のアップグレードでは、Javaもアップグレードしましたか?

「.jdbc41」。ドライバーバージョンはJava 1.7用に構築されています。Postgresには、互換性のあるJava/JDBCドライバーとPostgresドライバーのバージョンの組み合わせを示すマトリックスがあります。おそらく、次のものが必要です:postgresql-9.4.1209.jar(これは1.8/jdbc42の場合)

次に、CLIで(ドメインモードとprofile = fullを想定)

module add --name=org.postgresql.Driver --resources=/tmp/postgresql-9.4.1209.jar
connect
/profile=full/subsystem=datasources/jdbc-driver=postgres:add(driver-name="postgres",driver-module-name="org.postgresql.Driver",driver-class-name=org.postgresql.Driver)
exit
0
Stephen