You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Wildfly 35部署失败:缺失DefaultDataSource的解决办法咨询

问题描述

我们正将系统从旧版本JBoss升级至Wildfly,团队首次接触Wildfly。部署workflow.war时出现如下错误:

11:27:25,284 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0013: Operation ("deploy ") failed - address: ([("deployment" => "workflow.war")]) - failure description: {
    "WFLYCTL0412: Required services that are not installed:" => ["jboss.naming.context.java.jdbc.workflow.myDataSource"],
    "WFLYCTL0180: Services with missing/unavailable dependencies" => ["service jboss.naming.context.java.module.workflow.workflow.DefaultDataSource is missing [jboss.naming.context.java.jdbc.workflow.myDataSource]"]
}

当前standalone.xml的相关配置如下:

<datasources>
    <datasource jndi-name="java:/jdbc/workflow" pool-name="myDataSource" enabled="true" use-java-context="true" statistics-enabled="${wildfly.datasources.statistics-enabled:${wildfly.statistics-enabled:false}}">
        <connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE;MODE=${wildfly.h2.compatibility.mode:REGULAR}</connection-url>
        <driver>h2</driver>
        <security user-name="xxxxxxx" password="xxxxxx"/>
    </datasource>
    <drivers>
        <driver name="h2" module="com.h2database.h2">
            <xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
        </driver>
    </drivers>
</datasources>

...

<default-bindings context-service="java:jboss/ee/concurrency/context/default" datasource="java:/jdbc/workflow/myDataSource" managed-executor-service="java:jboss/ee/concurrency/executor/default" managed-scheduled-executor-service="java:jboss/ee/concurrency/scheduler/default" managed-thread-factory="java:jboss/ee/concurrency/factory/default"/>
可行修复方案
  • 修正default-bindings的数据源JNDI引用
    当前default-bindings中配置的datasource值为java:/jdbc/workflow/myDataSource,但实际定义的数据源JNDI名称是java:/jdbc/workflow,两者不匹配。将default-bindings里的datasource属性值改为java:/jdbc/workflow,保持与数据源配置一致。

  • 调整数据源的JNDI名称以匹配引用
    如果系统(包括war包内部)确实需要使用java:/jdbc/workflow/myDataSource作为数据源的JNDI名称,直接修改<datasource>标签的jndi-name属性为java:/jdbc/workflow/myDataSource,确保所有引用该数据源的地方名称统一。

  • 检查war包内部的数据源配置
    查看workflow.war中的persistence.xml、jboss-web.xml或其他自定义配置文件,确认其中引用的数据源JNDI名称是否与standalone.xml中的配置一致,若存在不匹配的情况,调整为统一的名称。

内容的提问来源于stack exchange,提问作者ph_fcyaa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 06:15:03