WildFly 18.0.1 JDBC-Treiber: Interner Fehler (newValue ist null)

17

Ich habe ein Problem beim Konfigurieren von JDBC-Treibern in WildFly (18.0.1) .

Wann immer ich öffne (Konfiguration / Subsysteme / DataSources & Drivers / JDBC-Treiber) ,

Ich bekomme:

Interner Fehler (Details: newValue ist null).

Fehlerbild 1:

Fehlerbild 2:

Jede Hilfe wäre sehr dankbar!

ayou392
quelle
Gibt es irgendetwas in den Serverprotokollen (normalerweise in eigenständiger Datei / log / server.log unter Ihrer Wildfly-Installation)?
stdunbar
Die Protokolldateien enthalten nichts, was auf ein Problem hinweist. Auch ändert sich nichts, nachdem ich den Fehler in der Protokolldatei erhalten habe.
Ayou392
Ich habe das gleiche Problem und keine Ahnung warum. Ich habe Version 18.0.1_Final und 16.0.0_Final installiert, aber das gleiche Problem. Haben Sie bereits eine Lösung gefunden?
Paigeola

Antworten:

3

Ich kann Ihr Problem vollständig reproduzieren. Ich habe die Wildfly-Konsole schon seit einiger Zeit nicht mehr benutzt, aber das scheint mir ein Fehler zu sein. Es gibt jedoch einen anderen Weg, der den Vorteil hat, dass er leicht wiederholbar und skriptfähig ist.

Wenn Sie jboss-cliaus dem Wildfly-Bin-Verzeichnis ausführen, können Sie einen JDBC-Treiber und eine JEE-Datenquelle mit einem Skript hinzufügen. Mein Skript sieht aus wie:

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

Dieses Skript sollte ausgeführt werden, ohne dass der Server ausgeführt wird. Wenn Sie möchten , dass es laufen , während der Server läuft dann entfernen Sie die embed-server, batchund run-batchLinien. Grundsätzlich wird zunächst ein Modul erstellt, das in diesem Fall ein PostgreSQL-Treiber ist. Anschließend wird ein JDBC-Treiber und zuletzt eine DataSource hinzugefügt. Es kann ausgeführt werden mit:

jboss-cli.sh --file=the-file-name.cli

vorausgesetzt, Sie haben das oben Gesagte in einer Datei mit dem Namen gespeichert the-file-name.cli. Auch hier muss sich das binVerzeichnis für Wildfly auf Ihrem Pfad befinden, damit dies in der Befehlszeile ausgeführt werden kann.

stdunbar
quelle
Arbeitete für mich, danke!
Paigeola
9

Dies ist kein Wildfly / Jboss-Problem. Der Fehler befindet sich in der Hal Management-Konsole (Version 3.2.1). Ich behebe diesen Fehler und ändere die HAL-Konsolenversion auf 3.2.4.

  1. Release herunterladen:
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. Kopieren Sie die JAR-Datei in das Wildfly-Verzeichnis
sudo cp hal-console-3.2.4.Final-resources.jar /opt/wildfly/modules/system/layers/base/org/jboss/as/console/main/
  1. Bearbeiten Sie die Datei module.xml
sudo vim /opt/wildfly/modules/system/layers/base/org/jboss/as/console/main/module.xml
  1. Ändern Sie die Version in der Datei module.xml
   <resources>
        <resource-root path="hal-console-3.2.4.Final-resources.jar"/>
    </resources>
  1. Starten Sie jboss / wildfly neu
sudo systemctl restart wildfly or sudo service wildfly restart
Daniel Xavier Oliveira
quelle
3
Das Github-Archiv scheint nicht den Zielordner zu enthalten, sondern nur den Quellcode. Also erstellen wir entweder dieses Maven-Projekt oder extrahieren ein Konsolenglas von einem anderen Ort, z. B. einer WildFly 19-Beta.
T-Gergely
1
Schritt 1a. - Maven, CD-App, MVN-Paket installieren (dann warten, dann das Glas kopieren)
David O'Meara
Ich habe vergessen, den Schritt zum Kompilieren des src einzuschließen. Ich werde dies in meine Antwort aufnehmen
Daniel Xavier Oliveira
1
Noch eine Kleinigkeit: Ein Neustart des Servers reicht nicht aus, Sie müssen die Aktualisierung des Browser-Cache erzwingen ^ _ ^ '
Giampaolo
0

Verwenden Sie diesen Link, how_to_setup_postgresql_datasource_with_wildfly. Dadurch wird Ihr Problem auf alternative Weise gelöst.

Edition der Konfigurationsdatei (One Way)

Standalone.xml ist die Konfigurationsdatei für den Server. Die Verwaltungskonsole ist nur eine benutzerfreundliche Oberfläche zum Bearbeiten dieser Datei.

Stellen Sie den JDBC-Treiber bereit

  • Öffnen Sie einen Datei-Explorer und gehen Sie in Ihrem Wildfly- Installationsverzeichnis zu / modules / directory.
  • Erstellen Sie Ordner / org / postgresql / main /. Diese Ordner müssen mit dem Hierarchiepaket des JDBC-Treibers übereinstimmen.
  • Kopieren Sie den JDBC-Treiber in das von Ihnen erstellte Hauptverzeichnis. Erstellen Sie in diesem Verzeichnis eine Datei "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>

Erstellen der Datenquelle - Wechseln Sie in Ihrem Wildfly-Installationsverzeichnis zum Verzeichnis / standalone / configuration. - Öffnen Sie die Datei standalone.xml (dies ist die Standardkonfigurationsdatei, die vom eigenständigen Server verwendet wird). - Suchen Sie nach "Datenquelle", um zum richtigen Teil zu gelangen. - Im Element müssen Sie sowohl für PostgreSQL als auch für hinzufügen

Ein Neustart von Wildfly ist erforderlich, und Sie können Ihre Änderung überprüfen, indem Sie die Verbindung in der Verwaltungskonsole testen.

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

Ein anderer Weg Verwenden der Wildfly CLI (2 Wege)

Die andere Möglichkeit zum Hinzufügen einer Datenquelle ist die Verwendung der Konsolenleitungsschnittstelle (CLI). Auch hier ist der Prozess in zwei Schritte unterteilt.

Bereitstellen des JDBC-Treibers - Wechseln Sie in das Verzeichnis / bin in Ihrem Wildfly-Installationsverzeichnis. - Öffnen Sie ein Terminal in diesem Verzeichnis und führen Sie es aus

  ./jboss-cli.sh --connect controller=127.0.0.1 (or jboss-cli.bat if you are on Windows)
  • Führen Sie diesen Befehl aus, um das Modul zu installieren

    Modul add --name = org.postgresql --resources = / tmp / postgresql-42.2.1.jar --dependencies = javax.api, javax.transaction.api

  • Erstellen der Datenquelle Die Treibererstellung erfolgt mit diesem Befehl

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

  • Und dann der letzte Befehl zum Hinzufügen der Datenquelle

    Datenquelle hinzufügen --jndi-name = java: jboss / datasources / StenusysDemoDS --name = StenusysDemoDS --connection-url = jdbc: postgresql: // localhost: 5432 / StenusysDemo --driver-name = postgres --user- name = postgres --password = admin

Sie können Ihre Änderung überprüfen, indem Sie die Verbindung in der Verwaltungskonsole testen.

neha yadav
quelle
0

Ich hatte das gleiche Problem, aber die Lösung, die ich tat, bestand darin, einen Konsolenbenutzer mit einem Kennwort mit alphanumerischen und 1 nicht alphanumerischen Zeichen zu erstellen.

  1. Führen Sie den Server wildfly phat \ bin \ standalone.bat aus
  2. wildfly phat \ bin \ add-user.bat
  3. Drücken Sie eine if-Manager-Konsole
  4. Benutzername: admin oder geben Sie Ihren gewünschten Benutzernamen ein
  5. Drücken Sie, um den Administrator zu aktualisieren
  6. Passwort: Zum Beispiel p @ ssword1 oder Ihr Passwort mit 1 nicht-aphanumerischen Zeichen
  7. repassword: das gleiche Passwort, das Sie verwendet haben
  8. eingeben
  9. nein und eintreten

und schließlich verwenden Sie einen anderen Webbrowser wie Chrome

Benutzer mit Kennwort ohne 1 nicht-aphanumerisches Zeichen konfigurieren

Benutzer mit Kennwort mit 1 nicht aphanumerischen Zeichen konfigurieren

Esteban Vallejo
quelle
Der letzte Schritt löscht den Verlauf des Webbrowsers
Esteban Vallejo