gpt4 book ai didi

java - 不使用 web.xml 时如何将 JDBC 数据源绑定(bind)到 JNDI 上下文 "java:comp/env/jdbc"

转载 作者:行者123 更新时间:2023-11-30 08:18:43 24 4
gpt4 key购买 nike

如何仅使用基于代码的方法将 JDBC 数据源绑定(bind)到 JNDI 上下文 java:comp/env/jdbc

我们需要在web.xml中编写resource-ref,用于将数据源绑定(bind)到JNDI本地上下文java:comp/env/jdbc。但我只想使用 org.springframework.web.context.AbstractContextLoaderInitializer 而不是 web.xml(旧方法)。

我们知道方法InitialContext#createSubcontext。但某些应用程序服务器(例如Websphere)不接受编辑上下文java:comp/env/jdbc/

有什么解决办法吗?

版本:

  • Spring 4.0.7
  • Servlet 3.0

最佳答案

您可以使用 Spring 的 SimpleNamingContextBuilder 尝试完整的编程方法:

  SimpleNamingContextBuilder builder = new SimpleNamingContextBuilder();
DataSource ds = new DriverManagerDataSource(...);
builder.bind("java:comp/env/jdbc/myds", ds); // you control the datasource
builder.activate();

它主要用于测试目的。如果您选择使用它,那么您需要提供自己的连接池(例如 Apache 的 Jakarta Commons DBCP)。

我曾经部署到cloudbees时用于测试。 see this blogpost

这适用于“普通”Tomcat。我没有可供测试的 EE 服务器,但您可以尝试一下,看看会发生什么(我猜 JNDI 绑定(bind)名称对于服务器来说必须是唯一的)。

关于java - 不使用 web.xml 时如何将 JDBC 数据源绑定(bind)到 JNDI 上下文 "java:comp/env/jdbc",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29292304/

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