java - 如何从 Web 容器外部查找 JNDI 数据源?

标签 java jdbc datasource jndi

我设置了以下环境:

  • Java 1.5
  • Sun 应用服务器 8.2
  • 甲骨文 10 XE
  • Struts 2
  • hibernate

我很想知道如何为可以引用应用服务器提供的 JNDI 数据源的 Java 客户端(即在 Web 应用程序之外)编写代码。

Sun 应用服务器的端口都是默认值。服务器配置中有一个名为 jdbc/xxxx 的 JNDI 数据源,但我注意到 Web 应用程序的 Hibernate 配置使用的是名称 java:comp/env/jdbc/xxxx。

到目前为止我看到的大多数示例都涉及如下代码

Context ctx = new InitialContext();
ctx.lookup("jdbc/xxxx");

但似乎我使用了错误的 JNDI 名称,或者我需要配置 jndi.properties 或其他配置文件以正确指向监听器?我有来自 Sun 应用服务器的 appserv-rt.jar,里面有一个 jndi.properties,但它似乎没有帮助。

这里有一个类似的问题,但是没有给出任何代码/指的是让iBatis自动获取JNDI数据源:Accessing Datasource from Outside A Web Container (through JNDI)

最佳答案

我遇到了这个完全相同的问题。我写了一个小教程。基本上,您必须创建自己的 DataSource 对象实现并将它们添加到您自己的自定义初始上下文中。这里有源代码示例:

Running Beans Locally that use Application Server Data Sources

关于java - 如何从 Web 容器外部查找 JNDI 数据源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2521421/

相关文章:

java - "for"循环中的 Canvas 坐标,Java

java - 是否可以在 ubuntu 上的 apache-tomcat-7.0.54 中配置代理设置?

Java Streaming JDBC 结果集从表中读取行,保持结果集打开并且无需再次触发 SQL

javascript - 即使我的数据源 _sort 变量确实发生了变化,Mat-sort 也不起作用

mvvm - 未调用 Kendo Observable 远程数据源更新

java - Hadoop线程异常 “main”中的字数统计程序java.lang.ClassNotFoundException

java - 在父子表中插入和选择记录

java - JDBC 中的正则表达式

grails - 我可以在 groovy 中有 2 个具有不同权限的不同数据源吗

Java SE : generics and inheritance/polymorphism