Драйверы JDBC WildFly 18.0.1: Внутренняя ошибка (newValue равно null)

17

У меня проблема с настройкой драйверов JDBC в WildFly (18.0.1) .

Всякий раз, когда я открываю (Конфигурация / Подсистемы / Источники данных и Драйверы / Драйверы JDBC) ,

Я получил:

Внутренняя ошибка (подробности: newValue имеет значение null).

Изображение ошибки 1:

Изображение ошибки 2:

Любая помощь будет очень высоко ценится!

ayou392
источник
Есть ли что-нибудь в логах сервера (обычно в standalone / log / server.log под вашей установкой Wildfly)?
stdunbar
В файлах журналов нет ничего, что указывало бы на проблему. Также ничего не меняется после того, как я получаю сообщение об ошибке в файле журнала.
ayou392
У меня такая же проблема и не знаю почему. Я установил версии 18.0.1_Final и 16.0.0_Final, но проблема та же. Вы уже нашли решение?
Пейгеола

Ответы:

3

Я могу воспроизвести вашу проблему полностью. Я давно не пользовался консолью Wildfly, но для меня это похоже на ошибку. Тем не менее, есть другой способ, который имеет преимущество, заключающееся в том, что он легко повторяется и может быть написан с помощью скриптов.

Если вы запускаете jboss-cliиз каталога bin Wildfly, вы можете добавить драйвер JDBC и источник данных JEE со скриптом. Мой сценарий выглядит так:

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

Этот скрипт должен быть запущен без запуска сервера. Если вы хотите , чтобы запустить его , пока сервер работает , то удалить embed-server, batchи run-batchлинию. По сути, это начинается с создания модуля, который в данном случае является драйвером PostgreSQL. Затем он добавляет драйвер JDBC и, наконец, источник данных. Это может быть запущено с:

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

Предполагая, что вы сохранили вышеуказанное в файл с именем the-file-name.cli. Опять же, binкаталог для Wildfly должен быть на вашем пути, чтобы запустить это в командной строке.

stdunbar
источник
Работал на меня, спасибо!
Пейгеола
9

Это не проблема wildfly / jboss. Ошибка в консоли Hal Management (версия 3.2.1). Я исправляю эту ошибку, меняя версию консоли HAL на 3.2.4.

  1. Скачать релиз:
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. Скопируйте файл jar в каталог wildfly
sudo cp hal-console-3.2.4.Final-resources.jar /opt/wildfly/modules/system/layers/base/org/jboss/as/console/main/
  1. Отредактируйте файл module.xml
sudo vim /opt/wildfly/modules/system/layers/base/org/jboss/as/console/main/module.xml
  1. Изменить версию в файле module.xml
   <resources>
        <resource-root path="hal-console-3.2.4.Final-resources.jar"/>
    </resources>
  1. Перезапустите jboss / wildfly
sudo systemctl restart wildfly or sudo service wildfly restart
Даниэль Ксавьер Оливейра
источник
3
Архив github, похоже, не содержит целевой папки, только исходный код. Поэтому мы либо создаем этот проект maven, либо извлекаем консольный jar-файл из другого места, например, бета-версию WildFly 19.
T-Gergely
1
Шаг 1а. - установите приложение maven, cd, пакет mvn (затем подождите, затем скопируйте банку)
David O'Meara
Я забыл включить шаг для компиляции src. Я добавлю это в своем ответе
Даниэль Ксавье Оливейра
Правильный URL-адрес: repository.jboss.org/nexus/content/repositories/ea/org/jboss/…
Джампаоло
1
Еще одна маленькая вещь: перезапуск сервера не достаточно, вам нужно принудительно обновить кэш браузера ^ _ ^ '
Джампаоло
0

Используйте эту ссылку, how_to_setup_postgresql_datasource_with_wildfly. Это решит вашу проблему по-другому.

Редактирование файла конфигурации (в одну сторону)

Standalone.xml - это файл конфигурации для сервера. Консоль управления - это удобный интерфейс для редактирования этого файла.

Разверните драйвер JDBC

  • Откройте проводник и перейдите в каталог / modules / в вашей Wildfly. установки .
  • Создайте папки / org / postgresql / main /. Эти папки должны соответствовать иерархическому пакету драйвера JDBC.
  • Скопируйте драйвер JDBC в созданный вами «главный» каталог. В этом каталоге создайте файл «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>

Создать источник данных - Перейдите в каталог / standalone / configuration в вашем каталоге установки Wildfly. - Откройте standalone.xml (это файл конфигурации по умолчанию, используемый автономным сервером). - Найдите «источник данных», чтобы перейти к правой части. - В элемент нужно добавить как для PostgreSQL, так и для

Необходим перезапуск Wildfly, и вы можете проверить свои изменения, протестировав соединение в консоли управления.

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

Другой способ Использование Wildfly CLI (2 способа)

Другой способ добавления источника данных - использование интерфейса консоли (CLI). Опять же, процесс делится на два этапа.

Разверните драйвер JDBC. Перейдите в каталог / bin вашего установочного каталога Wildfly. - Откройте терминал в этом каталоге и запустите

  ./jboss-cli.sh --connect controller=127.0.0.1 (or jboss-cli.bat if you are on Windows)
  • Чтобы установить модуль, запустите эту команду

    модуль add --name = org.postgresql --resources = / tmp / postgresql-42.2.1.jar --dependencies = javax.api, javax.transaction.api

  • Создать источник данных Создание драйвера выполняется с помощью этой команды

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

  • И затем, последняя команда, чтобы добавить источник данных

    источник данных добавить --jndi-name = java: jboss / datasources / StenusysDemoDS --name = StenusysDemoDS --connection-url = jdbc: postgresql: // localhost: 5432 / StenusysDemo --driver-name = postgres --user- name = postgres --password = admin

Вы можете проверить свои изменения, протестировав соединение в консоли управления.

Неха Ядав
источник
0

У меня была та же проблема, но я решил создать консольного пользователя с паролем, используя буквенно-цифровой и 1 не буквенно-цифровой символ.

  1. запустить сервер wildfly phat \ bin \ standalone.bat
  2. wildfly phat \ bin \ add-user.bat
  3. нажмите консоль менеджера if
  4. username: admin или введите желаемое имя пользователя
  5. нажмите для обновления администратора
  6. пароль: например, p @ ssword1 или ваш пароль с 1 не алфавитно-цифровым символом
  7. repassword: тот же пароль, который вы использовали
  8. войти
  9. нет и введите

и, наконец, использовать веб-браузер, отличный от Chrome

Конфиг пользователя с паролем без 1 не алфавитно-цифрового символа

Конфигурировать пользователя с паролем с 1 не алфавитно-цифровым символом

Эстебан Вальехо
источник
последний шаг очистить историю веб-браузера
Эстебан Вальехо