Solución:
Este no es un problema de wildfly / jboss. El error está en la consola de administración de Hal (versión 3.2.1). Soluciono este error, cambiando la versión de la consola HAL a 3.2.4.
- 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
- 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/
- Edite el archivo module.xml
sudo vim /opt/wildfly/modules/system/layers/base/org/jboss/as/console/main/module.xml
- Cambiar la versión en el archivo module.xml
<resources>
<resource-root path="hal-console-3.2.4.Final-resources.jar"/>
</resources>
- Reiniciar jboss / wildfly
sudo systemctl restart wildfly or sudo service wildfly restart
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 tu corres jboss-cli
desde 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
Esta secuencia de comandos debe ejecutarse sin que se ejecute el servidor. Si desea ejecutarlo mientras el servidor se está ejecutando, elimine el embed-server
, batch
, y run-batch
líneas. Básicamente, esto comienza creando un módulo que en este caso es un controlador PostgreSQL. Luego agrega un controlador JDBC y, por último, 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
. De nuevo, el bin
El directorio de Wildfly debe estar en su ruta para ejecutarlo en la línea de comandos.
Aparentemente, este es un problema conocido (consulte https://developer.jboss.org/thread/280649 y https://issues.redhat.com/browse/WFLY-12642) y se solucionará en la próxima versión.