javax.naming.NameNotFoundException: Name jdbc is not bound in this Context

packageinspur.wuye.common;importjava.sql.Connection;importjava.sql.SQLException;impor... package inspur.wuye.common;

import java.sql.Connection;
import java.sql.SQLException;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;

/**
* 使用配置好的数据源,获取数据库连接
*/
public class ConnectionPool {
public static Connection getConnection(){
Connection conn=null;
DataSource ds=null;

try {
Context cxt=new InitialContext();
ds=(DataSource)cxt.lookup("java:comp/env/jdbc/oracle");
//java:comp/env指jvm虚拟机.jdbc/oracle指tomcat数据源的名字

conn=ds.getConnection();
}catch (NamingException e) {
e.printStackTrace();
conn=null;
ds=null;
} catch (SQLException e) {
e.printStackTrace();
conn=null;
ds=null;
}
return conn;
}
}
展开
 我来答
jamxval
推荐于2018-03-11 · TA获得超过6823个赞
知道大有可为答主
回答量:4308
采纳率:82%
帮助的人:1444万
展开全部
要想让 java:comp/env 下的东西工作,需要做2件事:
1. 在 ejb-jar.xml 或 web.xml 中建立资源引用。
2. 在应用服务器相关的 binding xml 配置中将全局的资源 jndi 名映射成资源引用里面的逻辑名。
比如在 tomcat 里面,需要在 context.xml 或 server.xml 里面的 <Context /> 中建立 <ResourceLink />,而在 websphere ejb 中需要 ejb-ibm-bind.xml 里面建立类似的映射。

这是 J2EE 1.3 的规范,各家应用服务器实现的方法各不相同,但第2步必须由应用服务器厂商实现,而开发人员(准确地说是 deployer) 必须配置 binding xml。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bluerain_wind
2012-05-04
知道答主
回答量:20
采纳率:0%
帮助的人:5.8万
展开全部
有些应用服务器不需要前缀的 java:comp/env/,例如websphere
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式