Controladores JDBC WildFly 18.0.1: error interno (newValue es nulo)

17

Tengo un problema al configurar los controladores JDBC en WildFly (18.0.1) .

Cada vez que abro (Configuración / Subsistemas / Fuentes de datos y controladores / Controladores JDBC) ,

Yo obtengo:

Error interno (Detalles: newValue es nulo).

Imagen de error 1:

Imagen de error 2:

¡Cualquier ayuda sería muy apreciada!

ayou392
fuente
¿Hay algo en los registros del servidor (normalmente en standalone / log / server.log en su instalación de Wildfly)?
stdunbar
No hay nada en los archivos de registro que indique un problema. Además, nada cambia después de recibir el error en el archivo de registro.
ayou392
Tengo el mismo problema y no tengo idea de por qué. Instalé la versión 18.0.1_Final y 16.0.0_Final, pero el mismo problema. ¿Ya has encontrado una solución?
Paigeola

Respuestas:

3

Puedo reproducir tu problema por completo. No he usado la consola Wildfly en bastante tiempo, pero esto me parece un error. Sin embargo, hay otra forma que tiene la ventaja de ser fácilmente repetible y programable.

Si ejecuta jboss-clidesde el directorio bin de Wildfly, puede agregar un controlador JDBC y una fuente de datos JEE con un script. Mi guión se ve así:

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

Este script debe ejecutarse sin que se ejecute el servidor. Si desea ejecutarlo mientras el servidor se está ejecutando a continuación, quitar las embed-server, batchy run-batchlas líneas. Básicamente, esto comienza creando un módulo que en este caso es un controlador PostgreSQL. Luego agrega un controlador JDBC y finalmente un DataSource. Se puede ejecutar con:

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

asumiendo que guardó lo anterior en un archivo llamado the-file-name.cli. Una vez más, el bindirectorio de Wildfly debe estar en su ruta para ejecutar esto en la línea de comando.

stdunbar
fuente
Trabajó para mí, gracias!
Paigeola
9

Este no es un problema wildfly / jboss. El error está en la consola Hal Management (versión 3.2.1). Arreglo este error, cambiando la versión de la consola HAL a 3.2.4.

  1. Descargar lanzamiento:
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. Copie el archivo jar al directorio wildfly
sudo cp hal-console-3.2.4.Final-resources.jar /opt/wildfly/modules/system/layers/base/org/jboss/as/console/main/
  1. Edite el archivo module.xml
sudo vim /opt/wildfly/modules/system/layers/base/org/jboss/as/console/main/module.xml
  1. Cambiar versión en el archivo module.xml
   <resources>
        <resource-root path="hal-console-3.2.4.Final-resources.jar"/>
    </resources>
  1. Reiniciar jboss / wildfly
sudo systemctl restart wildfly or sudo service wildfly restart
Daniel Xavier Oliveira
fuente
3
El archivo github no parece contener la carpeta de destino, solo el código fuente. Por lo tanto, creamos ese proyecto Maven o extraemos un tarro de consola de otro lugar, por ejemplo, un WildFly 19 beta.
T-Gergely
1
Paso 1a - instalar maven, aplicación de cd, paquete mvn (luego esperar, luego copiar el jar)
David O'Meara
Olvidé incluir el paso para compilar el src. Agregaré esto en mi respuesta
Daniel Xavier Oliveira
1
Otra pequeña cosa: reiniciar el servidor no es suficiente, debe forzar la actualización de la memoria caché del navegador ^ _ ^ '
Giampaolo
0

Use este enlace, how_to_setup_postgresql_datasource_with_wildfly . Esto resolverá su problema de maneras alternativas.

Edición del archivo de configuración (unidireccional)

Standalone.xml es el archivo de configuración para el servidor. La consola de administración es solo una interfaz de usuario amigable para editar este archivo.

Implemente el controlador JDBC

  • Abra un explorador de archivos y vaya al directorio / modules / en su directorio de instalación de Wildfly .
  • Crear carpetas / org / postgresql / main /. Estas carpetas deben coincidir con el paquete de jerarquía del controlador JDBC.
  • Copie el controlador JDBC en el directorio 'principal' que ha creado. En este directorio, cree un archivo "module.xml" con esto

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

Cree el origen de datos : vaya al directorio / standalone / configuration en su directorio de instalación de Wildfly. - Abra standalone.xml (es el archivo de configuración predeterminado utilizado por el servidor independiente) - Busque 'fuente de datos' para ir a la parte correcta. - En el elemento, debe agregar ambos para PostgreSQL y

Es necesario reiniciar Wildfly y puede validar su cambio probando la conexión en la consola de administración.

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

Otra forma de usar Wildfly CLI (2 vías)

La otra forma de agregar fuente de datos es usando la interfaz de línea de consola (CLI). Nuevamente, el proceso se divide en dos pasos.

Implemente el controlador JDBC: vaya al directorio / bin en su directorio de instalación de Wildfly. - Abra una terminal en este directorio y ejecute

  ./jboss-cli.sh --connect controller=127.0.0.1 (or jboss-cli.bat if you are on Windows)
  • Para instalar el módulo, ejecute este comando

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

  • Crear el origen de datos La creación del controlador se realiza con este comando

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

  • Y luego, el último comando para agregar la fuente de datos

    data-source add --jndi-name = java: jboss / datasources / StenusysDemoDS --name = StenusysDemoDS --connection-url = jdbc: postgresql: // localhost: 5432 / StenusysDemo --driver-name = postgres --user- nombre = postgres - contraseña = admin

Puede validar su cambio probando la conexión en la consola de administración.

neha yadav
fuente
0

Tuve el mismo problema, pero la solución que hice fue crear un usuario de consola con contraseña usando caracteres alfanuméricos y 1 no alfanumérico.

  1. ejecute el servidor wildfly phat \ bin \ standalone.bat
  2. wildfly phat \ bin \ add-user.bat
  3. presione una consola de administrador if
  4. nombre de usuario: admin o ingrese su nombre de usuario que desee
  5. presione para actualizar el usuario administrador
  6. contraseña: por ejemplo, p @ ssword1 o su contraseña con 1 carácter no alfanumérico
  7. contraseña: la misma contraseña que usaste
  8. entrar
  9. no y entra

y finalmente usar un navegador web diferente como Chrome

Usuario de configuración con contraseña sin 1 carácter no alfanumérico

Usuario de configuración con contraseña con 1 carácter no alfanumérico

Esteban Vallejo
fuente
el último paso borrar el historial del navegador web
Esteban Vallejo