WildFly 18.0.1 JDBC 驱动程序:内部错误(newValue 为空)

ayo*_*392 18 java jdbc wildfly jakarta-ee

我在WildFly (18.0.1) 中配置 JDBC 驱动程序时遇到问题。

每当我打开(Configuration/Subsystems/DataSources & Drivers/JDBC Drivers) 时

我得到:

内部错误(详细信息:newValue 为空)。

错误图 1:

错误图 2:

任何帮助将不胜感激!

Dan*_*ira 15

这不是野蝇/jboss 问题。该错误位于 Hal 管理控制台(版本 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
Run Code Online (Sandbox Code Playgroud)
  1. 将jar文件复制到wildfly目录
sudo cp hal-console-3.2.4.Final-resources.jar /opt/wildfly/modules/system/layers/base/org/jboss/as/console/main/
Run Code Online (Sandbox Code Playgroud)
  1. 编辑文件 module.xml
sudo vim /opt/wildfly/modules/system/layers/base/org/jboss/as/console/main/module.xml
Run Code Online (Sandbox Code Playgroud)
  1. 更改文件 module.xml 中的版本
   <resources>
        <resource-root path="hal-console-3.2.4.Final-resources.jar"/>
    </resources>
Run Code Online (Sandbox Code Playgroud)
  1. 重启jboss/wildfly
sudo systemctl restart wildfly or sudo service wildfly restart
Run Code Online (Sandbox Code Playgroud)

  • github档案似乎不包含目标文件夹,只包含源代码。因此,我们要么构建该 Maven 项目,要么从其他地方提取控制台 jar,例如 WildFly 19 beta。 (3认同)
  • 还有一点小事:重启服务器还不够,需要强制刷新浏览器缓存^_^' (2认同)

std*_*bar 3

我可以完全重现你的问题。我已经有一段时间没有使用 Wildfly 控制台了,但这对我来说看起来像是一个错误。然而,还有另一种方法,其优点是易于重复和编写脚本。

如果从 Wildfly bin 目录运行,jboss-cli则可以使用脚本添加 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
Run Code Online (Sandbox Code Playgroud)

该脚本应该在服务器不运行的情况下运行。如果您想在服务器运行时运行它,请删除embed-serverbatchrun-batch行。基本上,这首先是创建一个模块,在本例中是 PostgreSQL 驱动程序。然后它添加一个 JDBC 驱动程序,最后添加一个数据源。它可以通过以下方式运行:

jboss-cli.sh --file=the-file-name.cli
Run Code Online (Sandbox Code Playgroud)

假设您将以上内容保存到名为the-file-name.cli. 同样,binWildfly 的目录需要位于您的路径上才能在命令行上运行它。