WildFly(18.0.1)でのJDBCドライバーの設定に問題があります。
私が開くときはいつでも(Configuration/Subsystems/DataSources&Drivers/JDBC Drivers)、
私は得ます:
内部エラー(詳細:newValueがnull)。
エラー画像1:
エラー画像2:
どんな助けでも大歓迎です!
問題を完全に再現できます。私はかなり前からWildflyコンソールを使用していませんが、これは私にはバグのように見えます。ただし、簡単に繰り返してスクリプトを作成できるという利点がある別の方法もあります。
Wildfly binディレクトリからjboss-cli
を実行すると、スクリプトを使用してJDBCドライバーとJEEデータソースを追加できます。私のスクリプトは次のようになります:
embed-server --server-config=standalone.xml --std-out=echo
batch
module add --name=org.postgres --resources=${user.home}/Downloads/postgresql-42.2.8.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/data-source=myDS/:add(connection-url=jdbc:postgresql://localhost:5432/dbname,driver-name=postgres,jndi-name=Java:/jdbc/myDS,background-validation=true,background-validation-millis=60000,blocking-timeout-wait-millis=2000,flush-strategy=Gracefully,idle-timeout-minutes=5,initial-pool-size=4,max-pool-size=64,min-pool-size=4,password=the-password,query-timeout=10,track-statements=true,tracking=true,user-name=the-user,validate-on-match=false)
run-batch
このスクリプトは、サーバーを実行せずに実行する必要があります。サーバーの実行中に実行したい場合は、embed-server
、batch
、およびrun-batch
行を削除してください。基本的に、これはこの場合PostgreSQLドライバーであるモジュールを作成することから始まります。次に、JDBCドライバーと最後にDataSourceを追加します。次のコマンドで実行できます。
jboss-cli.sh --file=the-file-name.cli
上記をthe-file-name.cli
という名前のファイルに保存したと仮定します。繰り返しますが、Wildflyのbin
ディレクトリは、コマンドラインで実行するためにパス上にある必要があります。
これはwildfly/jbossの問題ではありません。バグはHal管理コンソール(バージョン3.2.1)にあります。このエラーを修正し、HALコンソールのバージョンを3.2.4に変更します。
wget https://repository.jboss.org/nexus/content/repositories/ea/org/jboss/hal/hal-console/3.2.4.Final/hal-console-3.2.4.Final-resources.jar
Sudo cp hal-console-3.2.4.Final-resources.jar /opt/wildfly/modules/system/layers/base/org/jboss/as/console/main/
Sudo vim /opt/wildfly/modules/system/layers/base/org/jboss/as/console/main/module.xml
<resources>
<resource-root path="hal-console-3.2.4.Final-resources.jar"/>
</resources>
Sudo systemctl restart wildfly or Sudo service wildfly restart
これは明らかに既知の問題です( https://developer.jboss.org/thread/280649 および https://issues.redhat.com/browse/WFLY-12642 を参照) =)、次のリリースで修正される予定です。
私は同じ問題を抱えていましたが、私が行った解決策は、英数字と1つの非英数字を使用したパスワードでコンソールユーザーを作成することでした。
そして最後にクロムのような異なるウェブブラウザを使用します
このリンク how_to_setup_postgresql_datasource_with_wildfly を使用してください。これにより、別の方法で問題を解決できます。
Standalone.xmlはサーバーの構成ファイルです。管理コンソールは、このファイルを編集するためのフレンドリーなUIにすぎません。
作成した「main」ディレクトリにJDBCドライバーをコピーします。このディレクトリで、これを使用して「module.xml」ファイルを作成します
<resources>
<resource-root path="postgresql-42.2.1.jar"/>
<!-- Make sure this matches the name of the JAR you are installing -->
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
</dependencies>
</module>
データソースを作成します-Wildflyインストールディレクトリの/ standalone/configurationディレクトリに移動します。 -standalone.xmlを開きます(これはスタンドアロンサーバーで使用されるデフォルトの設定ファイルです)-'datasource'を検索して適切な部分に移動します。 -要素で、PostgreSQLと
Wildflyの再起動が必要であり、管理コンソールで接続をテストすることで変更を検証できます。
<drivers>
<driver name="postgresql" module="org.postgresql">
<!-- for xa datasource -->
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class>
<!-- for non-xa datasource -->
<driver-class>org.postgresql.Driver</driver-class>
</driver>
</drivers>
<datasources>
<datasource jndi-name="Java:jboss/datasources/StemoDS" pool-name="StemoDS" enabled="true" use-Java-context="true">
<connection-url>jdbc:postgresql://localhost:5432/StemoDS</connection-url>
<driver>postgresql</driver>
<security>
<user-name>postgres</user-name>
<password>admin</password>
</security>
</datasource>
</datasources>
データソースを追加するもう1つの方法は、コンソールラインインターフェイス(CLI)を使用することです。ここでも、プロセスは2つのステップに分かれています。
JDBCドライバーをデプロイします-Wildflyインストールディレクトリの/ binディレクトリに移動します。 -このディレクトリでターミナルを開いて実行します
./jboss-cli.sh --connect controller=127.0.0.1 (or jboss-cli.bat if you are on Windows)
モジュールをインストールするには、次のコマンドを実行します
module add --name = org.postgresql --resources =/tmp/postgresql-42.2.1.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)
そして、データソースを追加する最後のコマンド
data-source add --jndi-name = Java:jboss/datasources/StenusysDemoDS --name = StenusysDemoDS --connection-url = jdbc:postgresql:// localhost:5432/StenusysDemo --driver-name = postgres --user- name = postgres --password = admin
管理コンソールで接続をテストすることにより、変更を検証できます。