web-dev-qa-db-fra.com

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

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!

17
ayou392

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.

3
stdunbar

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
7

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.

2
koenig

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.

  1. exécutez le serveur wildfly phat\bin\standalone.bat
  2. phat\bin\add-user.bat wildfly
  3. appuyez sur une console if manager
  4. nom d'utilisateur: admin ou entrez le nom d'utilisateur que vous souhaitez
  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 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

0
Esteban Vallejo

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 CLI Wildfly (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
neha yadav