Sterowniki JDBC WildFly 18.0.1: Błąd wewnętrzny (newValue ma wartość NULL)


17

Mam problem z konfiguracją sterowników JDBC w WildFly (18.0.1) .

Ilekroć otwieram (Konfiguracja / Podsystemy / Źródła danych i sterowniki / Sterowniki JDBC) ,

Dostaję:

Błąd wewnętrzny (Szczegóły: newValue ma wartość NULL).

Obraz błędu 1:

Obraz błędu 2:

Każda pomoc byłaby bardzo mile widziana!


Czy jest coś w logach serwera (zwykle w standalone / log / server.log w twojej instalacji Wildfly)?
stdunbar

W plikach dziennika nic nie wskazuje na problem. Również nic się nie zmienia po otrzymaniu błędu w pliku dziennika.
ayou392

Mam ten sam problem i nie mam pojęcia, dlaczego. Zainstalowałem wersję 18.0.1_Final i 16.0.0_Final, ale ten sam problem. Czy już znalazłeś rozwiązanie?
Paigeola,

Odpowiedzi:


3

Mogę całkowicie odtworzyć twój problem. Od dłuższego czasu nie korzystałem z konsoli Wildfly, ale dla mnie wygląda to na błąd. Istnieje jednak inny sposób, który ma tę zaletę, że jest łatwo powtarzalny i umożliwia tworzenie skryptów.

Jeśli uruchamiasz jboss-cliz katalogu bin Wildfly, możesz dodać sterownik JDBC i źródło danych JEE za pomocą skryptu. Mój skrypt wygląda następująco:

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

Ten skrypt powinien być uruchamiany bez serwera. Jeśli chcesz, aby go uruchomić, gdy serwer jest uruchomiony, a następnie usunąć embed-server, batchi run-batchwiersze. Zasadniczo zaczyna się od utworzenia modułu, który w tym przypadku jest sterownikiem PostgreSQL. Następnie dodaje sterownik JDBC i wreszcie źródło danych. Można go uruchomić z:

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

zakładając, że zapisałeś powyższe w pliku o nazwie the-file-name.cli. Ponownie, binkatalog dla Wildfly musi znajdować się na twojej ścieżce, aby uruchomić go w wierszu poleceń.


Pracował dla mnie, dzięki!
Paigeola,

9

To nie jest problem wildfly / jboss. Błąd występuje w konsoli zarządzania Hal (wersja 3.2.1). Naprawiam ten błąd, zmieniając wersję konsoli HAL na 3.2.4.

  1. Pobierz wersję:
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. Skopiuj plik jar do katalogu wildfly
sudo cp hal-console-3.2.4.Final-resources.jar /opt/wildfly/modules/system/layers/base/org/jboss/as/console/main/
  1. Edytuj plik module.xml
sudo vim /opt/wildfly/modules/system/layers/base/org/jboss/as/console/main/module.xml
  1. Zmień wersję w pliku module.xml
   <resources>
        <resource-root path="hal-console-3.2.4.Final-resources.jar"/>
    </resources>
  1. Uruchom ponownie jboss / wildfly
sudo systemctl restart wildfly or sudo service wildfly restart

3
Archiwum github wydaje się nie zawierać folderu docelowego, tylko kod źródłowy. Więc albo budujemy ten projekt raju, albo wypakowujemy słoik konsoli gdzieś indziej, np. WildFly 19 beta.
T-Gergely,

1
Krok 1a. - zainstaluj maven, aplikację cd, pakiet mvn (następnie poczekaj, a następnie skopiuj słoik)
David O'Meara

Zapomniałem dołączyć krok do skompilowania src. Dodam to do mojej odpowiedzi
Daniel Xavier Oliveira


1
Kolejna drobna rzecz: ponowne uruchomienie serwera nie wystarczy, musisz wymusić odświeżenie pamięci podręcznej przeglądarki ^ _ ^ '
Giampaolo


0

Skorzystaj z tego linku, how_to_setup_postgresql_datasource_with_wildfly . To rozwiąże Twój problem na inne sposoby.

Edycja pliku konfiguracji (w jedną stronę)

Standalone.xml to plik konfiguracyjny serwera. Konsola zarządzania to po prostu przyjazny interfejs użytkownika do edycji tego pliku.

Wdróż sterownik JDBC

  • Otwórz eksplorator plików i przejdź do katalogu / modules / w katalogu instalacyjnym Wildfly .
  • Utwórz foldery / org / postgresql / main /. Folder ten musi pasować do pakietu hierarchii sterownika JDBC.
  • Skopiuj sterownik JDBC do utworzonego katalogu głównego. W tym katalogu utwórz plik „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>
    

Utwórz źródło danych - Przejdź do katalogu / standalone / configuration w katalogu instalacyjnym Wildfly. - Otwórz plik standalone.xml (jest to domyślny plik konfiguracyjny używany przez serwer autonomiczny) - Wyszukaj „źródło danych”, aby przejść do właściwej części. - W elemencie musisz dodać zarówno PostgreSQL, jak i

Konieczne jest ponowne uruchomienie Wildfly i możesz sprawdzić poprawność, testując połączenie w konsoli zarządzania.

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

Inny sposób korzystania z Wildfly CLI (2-drożny)

Innym sposobem dodania źródła danych jest użycie interfejsu wiersza konsoli (CLI). Ponownie proces dzieli się na dwa etapy.

Wdróż sterownik JDBC - przejdź do katalogu / bin w katalogu instalacyjnym Wildfly. - Otwórz terminal w tym katalogu i uruchom

  ./jboss-cli.sh --connect controller=127.0.0.1 (or jboss-cli.bat if you are on Windows)
  • Aby zainstalować moduł, uruchom to polecenie

    dodaj moduł --nazwa = org.postgresql --resources = / tmp / postgresql-42.2.1.jar --dependencies = javax.api, javax.transaction.api

  • Utwórz źródło danych Tworzenie sterownika odbywa się za pomocą tego polecenia

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

  • A następnie ostatnie polecenie, aby dodać źródło danych

    źródło danych dodaj --jndi-name = java: jboss / datasources / StenusysDemoDS - name = StenusysDemoDS --connection-url = jdbc: postgresql: // localhost: 5432 / StenusysDemo --driver-name = postgres --user- name = postgres --password = admin

Możesz sprawdzić swoją zmianę, testując połączenie w konsoli zarządzania.


0

Miałem ten sam problem, ale rozwiązaniem, które zrobiłem, było utworzenie użytkownika konsoli z hasłem, używając alfanumerycznego i 1 niealfanumerycznego znaku.

  1. uruchom serwer wildfly phat \ bin \ standalone.bat
  2. wildfly phat \ bin \ add-user.bat
  3. naciśnij konsolę if manager
  4. nazwa użytkownika: admin lub wprowadź żądaną nazwę użytkownika
  5. naciśnij aktualizację administratora
  6. hasło: na przykład p @ ssword1 lub twoje hasło z 1 nieafanumerycznym znakiem
  7. repassword: to samo hasło, którego użyłeś
  8. wchodzić
  9. nie i wejdź

i wreszcie użyj przeglądarki innej niż Chrome

Skonfiguruj użytkownika hasłem bez 1 nieafanumerycznego znaku

Skonfiguruj użytkownika hasłem o 1 nieafanumerycznym znaku


ostatnim krokiem wyczyść historię przeglądarki
Esteban Vallejo
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.