J'ai un problème de configuration des pilotes JDBC dans WildFly (18.0.1).
Chaque fois que j'ouvre (Configuration/Sous-systèmes/Sources de données et pilotes/Pilotes JDBC) ,
Je reçois:
Erreur interne (Détails: newValue est null).
Image d'erreur 1:
Image d'erreur 2:
Toute aide serait très appréciée!
Je peux reproduire complètement votre problème. Je n'ai pas utilisé la console Wildfly depuis un certain temps, mais cela me semble être un bug. Cependant, il existe un autre moyen qui a l'avantage d'être facilement reproductible et scriptable.
Si vous exécutez jboss-cli
à partir du répertoire bin de Wildfly, vous pouvez ajouter un pilote JDBC et une source de données JEE avec un script. Mon script ressemble à ceci:
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
Ce script doit être exécuté sans que le serveur ne fonctionne. Si vous souhaitez l'exécuter pendant que le serveur fonctionne, supprimez le embed-server
, batch
et run-batch
lignes. Fondamentalement, cela commence par la création d'un module qui dans ce cas est un pilote PostgreSQL. Il ajoute ensuite un pilote JDBC et enfin un DataSource. Il peut être exécuté avec:
jboss-cli.sh --file=the-file-name.cli
en supposant que vous avez enregistré ce qui précède dans un fichier nommé the-file-name.cli
. Encore une fois, le répertoire bin
pour Wildfly doit être sur votre chemin pour l'exécuter sur la ligne de commande.
Ce n'est pas un problème de wildfly/jboss. Le bogue se trouve dans la console Hal Management (version 3.2.1). Je corrige cette erreur, en changeant la version de la console HAL en 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
Il s'agit apparemment d'un problème connu (voir https://developer.jboss.org/thread/280649 et https://issues.redhat.com/browse/WFLY-12642 =) et sera corrigé dans la prochaine version.
J'ai eu le même problème, mais la solution que j'ai faite a été de créer un utilisateur de console avec mot de passe en utilisant un caractère alphanumérique et 1 caractère non alphanumérique.
et enfin utiliser un navigateur web différent comme chrome
Configurer l'utilisateur avec le mot de passe sans 1 caractère non aphanumérique
Configurer l'utilisateur avec un mot de passe avec 1 caractère non aphanumérique
Utilisez ce lien, how_to_setup_postgresql_datasource_with_wildfly . Cela résoudra votre problème de différentes manières.
Standalone.xml est le fichier de configuration du serveur. La console de gestion n'est qu'une interface utilisateur conviviale pour modifier ce fichier.
Copiez le pilote JDBC dans le répertoire "principal" que vous avez créé. Dans ce répertoire, créez un fichier "module.xml" avec ce
<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>
Créez la source de données - Accédez au répertoire/standalone/configuration dans votre répertoire d'installation Wildfly. - Ouvrez standalone.xml (c'est le fichier de configuration par défaut utilisé par le serveur autonome) - Recherchez 'datasource' pour aller à la bonne partie. - Dans l'élément, vous devez ajouter à la fois pour PostgreSQL et
Un redémarrage de Wildfly est nécessaire et vous pouvez valider votre modification en testant la connexion dans la console de gestion.
<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>
L'autre façon d'ajouter une source de données consiste à utiliser l'interface de ligne de console (CLI). Encore une fois, le processus est divisé en deux étapes.
Déployez le pilote JDBC - Accédez au répertoire/bin dans votre répertoire d'installation Wildfly. - Ouvrez un terminal sur ce répertoire et exécutez
./jboss-cli.sh --connect controller=127.0.0.1 (or jboss-cli.bat if you are on Windows)
Pour installer le module, exécutez cette commande
module add --name = org.postgresql --resources =/tmp/postgresql-42.2.1.jar --dependencies = javax.api, javax.transaction.api
Créer la source de données La création du pilote se fait avec cette commande
/subsystem=datasources/jdbc-driver=postgres:add(driver-name="postgres",driver-module-name="org.postgresql",driver-class-name=org.postgresql.Driver)
Et puis, la dernière commande pour ajouter la source de données
add-source de données --jndi-name = Java: jboss/datasources/StenusysDemoDS --name = StenusysDemoDS --connection-url = jdbc: postgresql: // localhost: 5432/StenusysDemo --driver-name = postgres --user- name = postgres --password = admin
Vous pouvez valider votre modification en testant la connexion dans la console de gestion.