gpt4 book ai didi

java - 与外部程序共享数据库连接

转载 作者:行者123 更新时间:2023-12-02 10:39:52 26 4
gpt4 key购买 nike

我们在 Web 容器 (WildFly 14) 内启动了应用程序 Foo。它通过 JNDI 以标准方式获取数据库连接。因此,连接不是在应用程序内部配置的,而是在 WildFly 中配置的。

现在,Foo 在同一台计算机上启动一个外部程序 Bar。该外部程序旨在完全独立于主应用程序,但需要访问相同的数据库。 Bar 还通过管道连接到 Foo,因此将可序列化对象从一个对象传递到另一个对象并不是问题。

通过简单的实现,我需要将 BarFoo 分开配置对数据库的访问。

是否可以自动将必要的数据库连接参数从 Foo 传递到 Bar?由于我们使用两种不同类型的数据库,这也将包括 JDBC 驱动程序(Foo 从 WildFly 部署中“免费”获取它)。加上 JDBC URL、用户名和密码。自动确定其中一些也会很有帮助。

我们控制并可以更改此设置中的几乎所有内容(FooBar 源、WildFly 配置)。

最佳答案

实际上还有另外两种替代方案(比 JNDI 轻量得多)

  1. 您可以使用 Wildfly 的管理 REST api 读取服务器上定义的数据源设置(在/configuration/standalone-***.xml 中)。您的应用程序可以发出一个简单的(经过身份验证的)http GET 请求并解析获取的 xml。

http://localhost:9990/management/subsystem/datasources/data-source/ExampleDS?operation=resource&recursive=true&json.pretty=1

  • 同样,这些设置也由 Wildfly 在 JMX 中公开。您只需使用 JDK 的 JMX api 或众多易于 JMX 查询的开源库之一来阅读它们。只需运行“jconsole”,连接到运行 WF 服务器的进程,然后查找数据源的属性。=> 找到“ConnectionUrl”、“userName”和“password”属性。然后对您的应用进行编码以读取这 3 个属性。
  • 祝你好运!

    enter image description here

    关于java - 与外部程序共享数据库连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52995663/

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