Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将JDBC数据源绑定到JNDI上下文;java:comp/env/jdbc“;何时不使用web.xml_Java_Spring_Jndi_Servlet 3.0 - Fatal编程技术网

如何将JDBC数据源绑定到JNDI上下文;java:comp/env/jdbc“;何时不使用web.xml

如何将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。但是一些应用服务器

如何仅使用基于代码的方法将JDBC数据源绑定到JNDI上下文
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如果下面的答案对您有效,请接受它