Pilotes JDBC WildFly 18.0.1: erreur interne (newValue est null)


17

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 sera la bienvenue!


Y a-t-il quelque chose dans les journaux du serveur (normalement dans autonome / log / server.log sous votre installation Wildfly)?
stdunbar

Il n'y a rien dans les fichiers journaux qui indique un problème. De plus, rien ne change après que j'ai obtenu l'erreur dans le fichier journal.
ayou392

J'ai le même problème et je ne sais pas pourquoi. J'ai installé la version 18.0.1_Final et 16.0.0_Final, mais même problème. Avez-vous déjà trouvé une solution?
Paigeola

Réponses:


3

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-clipartir du répertoire Wildfly bin, vous pouvez ajouter un pilote JDBC et une source de données JEE avec un script. Mon script ressemble à:

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 alors que le serveur est en cours d' exécution , puis retirez les embed-server, batchet les run-batchlignes. 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 binrépertoire de Wildfly doit être sur votre chemin pour l'exécuter sur la ligne de commande.


A travaillé pour moi, merci!
Paigeola

9

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.

  1. Télécharger la version:
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
  1. Copiez le fichier jar dans le répertoire wildfly
sudo cp hal-console-3.2.4.Final-resources.jar /opt/wildfly/modules/system/layers/base/org/jboss/as/console/main/
  1. Modifiez le fichier module.xml
sudo vim /opt/wildfly/modules/system/layers/base/org/jboss/as/console/main/module.xml
  1. Changer la version dans le fichier module.xml
   <resources>
        <resource-root path="hal-console-3.2.4.Final-resources.jar"/>
    </resources>
  1. Redémarrez jboss / wildfly
sudo systemctl restart wildfly or sudo service wildfly restart

3
L'archive github ne semble pas contenir le dossier cible, seulement le code source. Donc, soit nous construisons ce projet maven, soit nous extrayons un pot de console ailleurs, par exemple une version bêta de WildFly 19.
T-Gergely

1
Étape 1a. - installez maven, application cd, paquet mvn (puis attendez, puis copiez le pot)
David O'Meara

J'ai oublié d'inclure l'étape de compilation du src. J'ajouterai ceci dans ma réponse
Daniel Xavier Oliveira


1
Autre petite chose: redémarrer le serveur ne suffit pas, il faut forcer le rafraîchissement du cache du navigateur ^ _ ^ '
Giampaolo


0

Utilisez ce lien, how_to_setup_postgresql_datasource_with_wildfly . Cela résoudra votre problème de différentes manières.

Édition du fichier de configuration (aller simple)

Standalone.xml est le fichier de configuration du serveur. La console de gestion n'est qu'une interface utilisateur conviviale pour modifier ce fichier.

Déployer le pilote JDBC

  • Ouvrez un explorateur de fichiers et accédez au répertoire / modules / dans votre répertoire d' installation Wildfly .
  • Créez des dossiers / org / postgresql / main /. Ces dossiers doivent correspondre au package de hiérarchie du pilote JDBC.
  • 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>

Une autre façon d'utiliser Wildfly CLI (2 voies)

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.


0

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 un mot de passe en utilisant un caractère alphanumérique et 1 caractère non alphanumérique.

  1. exécutez le serveur wildfly phat \ bin \ standalone.bat
  2. wildfly phat \ bin \ add-user.bat
  3. appuyez sur une console if manager
  4. nom d'utilisateur: admin ou entrez votre nom d'utilisateur que vous voulez
  5. appuyez sur un utilisateur administrateur de mise à jour fo
  6. mot de passe: par exemple p @ ssword1 ou votre mot de passe avec 1 caractère non aphanumérique
  7. repassword: le même mot de passe que vous avez utilisé
  8. entrer
  9. non et entrez

et enfin utiliser un navigateur web différent comme chrome

Configurer l'utilisateur avec un 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


la dernière étape effacer l'historique du navigateur Web
Esteban Vallejo
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.