我的应用程序中包含一个.properties文件,其中包含dataSource属性。 我成立了一个JNDI引用该数据源使用下面的代码:使用其他应用程序与Tomcat创建的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...
现在我想用这dataSource在另一个应用程序中。但是,如果我执行的查找操作与之前相同,则不会找到myDataSource(而在Tomcat中仍然存在以前的应用程序,并且在监听程序的帮助下启动jndi绑定)。
如何在第二个应用程序中获取myDataSource,因为我无法在server.xml或context.xml文件中使用Tomcat资源(由于不同的原因,我必须使用此.properties文件)?
谢谢
如果你想要它的服务器范围,它必须在Server.xml文件中设置。 – Zoidberg 2009-12-21 14:57:46
我不认为由Tomcat中的一个webapp绑定的JNDI资源对其他webapps都是可见的。 – skaffman 2009-12-21 15:01:45
因此,你有一个将在tomcat内部运行的web应用程序,并且你不能使用context.xml或web.xml? – ChadNC 2009-12-21 15:18:48