gpt4 book ai didi

java - JBoss - 如何在多数据库环境中设置默认数据源?

转载 作者:行者123 更新时间:2023-11-30 05:34:42 25 4
gpt4 key购买 nike

我正在将我的项目从 JBoss EAP 6.4 迁移到 JBoss EAP 7.2。

所以我遇到了这种错误,

   15:45:50,571 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0013: Operation ("deploy") failed - address: ([("deployment" => "my.war")]) - failure description: {
"WFLYCTL0412: Required services that are not installed:" => ["jboss.naming.context.java.module.DefaultDataSource"],
"WFLYCTL0180: Services with missing/unavailable dependencies" => ["jboss.naming.context.java.module.dummy.env.myDS is missing [jboss.naming.context.java.module..DefaultDataSource]"]
}

我知道发生此错误是因为standalone.xml 中未定义默认数据源。在 JBoss EAP 的早期版本中,删除 DefaultDataSource 不会出现此问题。在此版本中,即使这些应用程序不需要该默认数据源,定义 DefaultDataSource 也是强制性的。

所以我尝试将默认数据源作为已存在的数据源。在这种声明中:

<default-bindings context-service="java:jboss/ee/concurrency/context/default" datasource="java:/jdbc/existing" /> 

这工作得很好。

现在我的问题是我们的环境有多个数据库及其各自的数据源。所以我们不能将特定的数据源定义为默认值。因为这会干扰我们应用程序的正常流程。并且可能会造成重大问题。

我们希望应用程序仅使用其特定数据源,而不是默认数据源。

但是 JBoss EAP 7 强制我们指定默认数据源。

那么我们可以定义一个虚拟的默认数据源吗?或者还有其他替代方法吗?

最佳答案

standalone.xml 中的默认绑定(bind)中存在默认数据源选项

default-bindings context-service="java:jboss/ee/concurrency/context/default" datasource="java:jboss/jdbc/jndi-name" 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"/

关于java - JBoss - 如何在多数据库环境中设置默认数据源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56870703/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com