如何将JDBC数据源绑定到JNDI上下文;java:comp/env/jdbc“;何时不使用web.xml
如何仅使用基于代码的方法将JDBC数据源绑定到JNDI上下文如何将JDBC数据源绑定到JNDI上下文;java:comp/env/jdbc“;何时不使用web.xml,java,spring,jndi,servlet-3.0,Java,Spring,Jndi,Servlet 3.0,如何仅使用基于代码的方法将JDBC数据源绑定到JNDI上下文java:comp/env/JDBC 我们需要在web.xml中编写resource ref,以便将数据源绑定到JNDI本地上下文java:comp/env/jdbc。 但是我只想使用org.springframework.web.context.AbstractContextLoaderInitializer,而不是web.xml(旧方法) 我们知道方法InitialContext\createSubcontext。但是一些应用服务器
java:comp/env/JDBC
我们需要在web.xml
中编写resource ref
,以便将数据源绑定到JNDI本地上下文java:comp/env/jdbc
。
但是我只想使用org.springframework.web.context.AbstractContextLoaderInitializer
,而不是web.xml
(旧方法)
我们知道方法InitialContext\createSubcontext
。但是一些应用服务器(例如Websphere)不接受编辑上下文java:comp/env/jdbc/
有什么解决办法吗
版本:
- 春季4.0.7
- Servlet 3.0
您可以使用Spring的SimpleNameingContextBuilder尝试一种完整的编程方法:
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时用于测试
这在“普通”Tomcat中起作用。我没有可以测试的EE服务器,但是您可以尝试一下,看看会发生什么(不过我想JNDI绑定名称对于服务器来说必须是唯一的) 我知道如何在Spring中使用数据源。我想知道如何将数据源绑定到
java:comp/env/jdbc/。
。您已经发现一些容器不支持它。因此,这个问题没有答案。@sndyuk如果下面的答案对您有效,请接受它