【发布时间】:2010-12-28 18:33:12
【问题描述】:
我的应用程序中有一个 .properties 文件,其中包含数据源属性。 我使用以下代码设置了对此数据源的 JNDI 引用:
// first I create MyDataSource from the properties found in the .properties file
//then :
Context initContext = new InitialContext();
initContext.createSubcontext("jdbc");
initContext.createSubcontext("jdbc/oracle");
initContext.rebind(jdbc/oracle/myDataSource, MyDataSource);
如果我在此应用程序中使用查找,则会找到数据源:
Context initContext = new InitialContext();
BasicDataSource dataSource =
(BasicDataSource) initContext.lookup("jdbc/oracle/myDataSource")
//everything works fine and I can use my dataSource to getConnection,
//requests, etc...
现在我想在另一个应用程序中使用这个数据源。但是,如果我执行与以前相同的查找,则找不到 myDataSource(而在 tomcat 中仍然存在以前的应用程序,并且 jndi 绑定是在侦听器的帮助下在启动时完成的)。
鉴于我不能在 server.xml 或 context.xml 文件中使用 Tomcat 的资源(由于不同的原因,我必须使用这个 .properties 文件),我如何在第二个应用程序中获取 myDataSource?
谢谢
【问题讨论】:
-
如果您希望它在服务器范围内,则必须在 Server.xml 文件中进行设置。
-
我认为 Tomcat 中一个 webapp 绑定的 JNDI 资源对其他 webapp 根本不可见。
-
所以你有一个将在 tomcat 中运行的 web 应用程序,你不能使用 context.xml 或 web.xml?