我设置了以下环境:
- 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/