首页 > 解决方案 > 如何在启动时为在 Tomcat 9.x 中运行的 ADF 应用程序创建动态 JNDI 数据源

问题描述

我正在寻找一种在启动 ADF 应用程序时动态创建 JNDI 数据源的方法。我目前有一个多租户数据源解决方案,其中每个数据源都必须在 tomcat 的 application.xml 文件中配置。这是功能齐全的。但是,如果我们添加/删除数据源,我们需要在每台服务器上重新配置 application.xml 文件。我们正在寻找一种编程解决方案,以允许在应用程序启动时创建 JNDI 数据源,而不是从 application.xml 中读取。

我已经看到 Tomcat 有一个用于 enableNaming 的 api,允许在 tomcat 自身引导并启动后添加 jdni 数据源,默认情况下它是锁定的。但是我不确定如何在独立的 tomcat 实例中使用它。但我可以看到它如何在 spring boot 嵌入式 tomcat 解决方案中工作。但是,我无法成功让我们的 adf 应用程序作为 Spring Boot 应用程序运行。我们对 Spring 之间的不同版本的 El 存在问题,而 ADF 的要求就是不允许它以这种方式完全发挥作用。

我还尝试在 ADF 中为多租户指定查找数据源的位置,而不是在 java:comp/env/jdbc 中,而只是查看 xxx/yyy/jdbc 或者我命名它。因为我们可以动态创建数据源并将其放在上下文中的其他位置。但是,ADF 中似乎存在一些不完全支持标准 jdbc 上下文位置之外的数据源的东西。

任何帮助/建议将不胜感激。

标签: javatomcatjdbcjndioracle-adf

解决方案


推荐阅读