Driver JDBC WildFly 18.0.1: errore interno (newValue è null)


17

Ho un problema con la configurazione dei driver JDBC in WildFly (18.0.1) .

Ogni volta che apro (Configurazione / Sottosistemi / Origini dati e driver / Driver JDBC) ,

Ottengo:

Errore interno (Dettagli: newValue è null).

Immagine errore 1:

Immagine errore 2:

Qualsiasi aiuto sarebbe molto apprezzato!


C'è qualcosa nei registri del server (normalmente in standalone / log / server.log nella tua installazione Wildfly)?
stdunbar,

Non c'è nulla nei file di registro che indica un problema. Inoltre non cambia nulla dopo che viene visualizzato l'errore nel file di registro.
ayou392,

Ho lo stesso problema e non ho idea del perché. Ho installato la versione 18.0.1_Final e 16.0.0_Final, ma lo stesso problema. Hai già trovato una soluzione?
Paigeola,

Risposte:


3

Posso riprodurre completamente il tuo problema. Non uso la console Wildfly da un po 'di tempo ma questo mi sembra un bug. Tuttavia, c'è un altro modo che ha il vantaggio di essere facilmente ripetibile e gestibile da script.

Se si esegue jboss-clidalla directory bin di Wildfly è possibile aggiungere un driver JDBC e l'origine dati JEE con uno script. La mia sceneggiatura è simile a:

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

Questo script dovrebbe essere eseguito senza il server in esecuzione. Se vuoi farlo funzionare mentre il server è in esecuzione quindi rimuovere le embed-server, batche run-batchle linee. Fondamentalmente questo inizia creando un modulo che in questo caso è un driver PostgreSQL. Quindi aggiunge un driver JDBC e infine un DataSource. Può essere eseguito con:

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

supponendo che hai salvato quanto sopra in un file denominato the-file-name.cli. Ancora una volta, la bindirectory per Wildfly deve essere sul tuo percorso per eseguirla sulla riga di comando.


Ha funzionato per me, grazie!
Paigeola,

9

Questo non è un problema wildfly / jboss. Il bug si trova nella console di gestione Hal (versione 3.2.1). Risolvo questo errore, cambiando la versione della console HAL in 3.2.4.

  1. Versione di download:
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. Copia il file jar nella directory wildfly
sudo cp hal-console-3.2.4.Final-resources.jar /opt/wildfly/modules/system/layers/base/org/jboss/as/console/main/
  1. Modifica il file module.xml
sudo vim /opt/wildfly/modules/system/layers/base/org/jboss/as/console/main/module.xml
  1. Modifica la versione nel file module.xml
   <resources>
        <resource-root path="hal-console-3.2.4.Final-resources.jar"/>
    </resources>
  1. Riavvia jboss / wildfly
sudo systemctl restart wildfly or sudo service wildfly restart

3
L'archivio github non sembra contenere la cartella di destinazione, ma solo il codice sorgente. Quindi costruiamo quel progetto maven o estraiamo un vaso console da qualche altra parte, ad esempio un WildFly 19 beta.
T-Gergely,

1
Passaggio 1a - installa maven, cd app, pacchetto mvn (quindi attendi, quindi copia il jar)
David O'Meara

Ho dimenticato di includere il passaggio per compilare l'src. Aggiungerò questo nella mia risposta
Daniel Xavier Oliveira il


1
Un'altra piccola cosa: riavviare il server non è sufficiente, è necessario forzare l'aggiornamento della cache del browser ^ _ ^ '
Giampaolo


0

Usa questo link, how_to_setup_postgresql_datasource_with_wildfly . Questo risolverà il tuo problema in modi alternativi.

Edizione del file di configurazione (solo andata)

Standalone.xml è il file di configurazione per il server. La console di gestione è solo un'interfaccia utente intuitiva per modificare questo file.

Distribuire il driver JDBC

  • Apri un esploratore di file e vai alla directory / modules / nella directory di installazione di Wildfly .
  • Crea cartelle / org / postgresql / main /. Queste cartelle devono corrispondere al pacchetto gerarchico del driver JDBC.
  • Copia il driver JDBC nella directory 'principale' che hai creato. In questa directory, crea un file "module.xml" con questo

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

Crea l'origine dati : vai alla directory / standalone / configuration nella directory di installazione di Wildfly. - Apri standalone.xml (è il file di configurazione predefinito utilizzato dal server autonomo) - Cerca 'origine dati' per andare alla parte giusta. - Nell'elemento, è necessario aggiungere sia PostgreSQL che

È necessario riavviare Wildfly ed è possibile convalidare la modifica testando la connessione nella console di gestione.

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

Un altro modo di usare Wildfly CLI (2 vie)

L'altro modo per aggiungere l'origine dati è utilizzare l'interfaccia della riga di console (CLI). Ancora una volta, il processo è diviso in due fasi.

Distribuire il driver JDBC: accedere alla directory / bin nella directory di installazione di Wildfly. - Aprire un terminale su questa directory ed eseguire

  ./jboss-cli.sh --connect controller=127.0.0.1 (or jboss-cli.bat if you are on Windows)
  • Per installare il modulo, eseguire questo comando

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

  • Crea l'origine dati La creazione del driver viene eseguita con questo comando

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

  • E quindi, l'ultimo comando per aggiungere l'origine dati

    origine dati aggiungi --jndi-name = java: jboss / datasources / StenusysDemoDS --name = StenusysDemoDS --connection-url = jdbc: postgresql: // localhost: 5432 / StenusysDemo --driver-name = postgres --user- name = postgres --password = admin

È possibile convalidare la modifica testando la connessione nella console di gestione.


0

Ho avuto lo stesso problema, ma la soluzione che ho fatto è stata quella di creare un utente console con password usando alfanumerico e 1 carattere non alfanumerico.

  1. eseguire il server wildfly phat \ bin \ standalone.bat
  2. wildfly phat \ bin \ add-user.bat
  3. premere a se console di gestione
  4. nome utente: admin o inserisci il tuo nome utente desiderato
  5. premere un utente amministratore di aggiornamento
  6. password: ad esempio p @ ssword1 o la tua password con 1 carattere non alfanumerico
  7. repassword: la stessa password che hai usato
  8. accedere
  9. no ed entra

e infine utilizzare un browser Web diverso come Chrome

Configura l'utente con password senza 1 carattere non alfanumerico

Configura l'utente con password con 1 carattere non alfanumerico


l'ultimo passaggio cancella la cronologia del browser Web
Esteban Vallejo,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.