关于数据库连接池 initContext.lookup 等.................

suypower1 2005-09-01 05:29:48

tomcat 里面使用
Context initContext = new InitialContext();
Context envContext = (Context)initContext.lookup("java:/comp/env");
DataSource ds = (DataSource)envContext.lookup("gaoduo/connectDB");
db_conn = ds.getConnection();
连接oracle 是成功的

但是使用
Context initContext = new InitialContext();
DataSource ds = (DataSource)initContext.lookup("jdbc/connectDB");
db_conn = ds.getConnection();
连接时候老是说不能成功, 提示是这样的
javax.naming.NameNotFoundException: Name jdbc is not bound in this Context

不知道为什么, 但是如果(第二段代码连接的)数据库是db2的话,就能成功, 请大家帮忙解决,谢谢了
这是为什么.
...全文
465 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
humanity 2005-09-13
  • 打赏
  • 举报
回复
规范的写法是第一种, J2EE 1.3 开始,资源管理在 全局资源管理器的池子中, 每一个容器 (Web , EJB ) 应该配置资源引用(链接), 当查找资源时,容器负责资源的注入。 就相当于你在程序中用 web.xml 或 ejb-jar.xml 配置的局部名字(容器内唯一),来查找资源,容器会自动对应找到全局 JNDI 中的一个资源给你使用。


不过我也不知道为什么: 用第二种情况中 Oracle 不行,而 db2 却可以, 所有的其他条件都一样的么?
ytcx_lt_82 2005-09-01
  • 打赏
  • 举报
回复

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧