java web 连接数据源 本帖最后由 u013536983 于 2014-10-11 15:12:17 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://blog.sina.com.cn/s/blog_65df5ada0100v8t4.html Connection conn = null; Context ctx = null; ctx = new InitialContext(); Context envContext = (Context) ctx.lookup("java:comp/env"); DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/BookDB"); // 取出连接 conn = ds.getConnection(); 这个帖子我看过, 我的tomcat的admin进不去数据源是由servlet容器创建和管理维护的, 所以使用数据源, 在tomcat的bin文件夹下面也必须有相应的数据库连接驱动, 而且我在web应用的lib下面也有这个连接驱动 这个envContext的作用是什么? java:comp/env 环境命名上下文(environment naming context(ENC))现在还报什么错吗 我使用您说这个方法之后, 现在报错: javax.naming.NameNotFoundException: Name java:comp is not bound in this Context我上网查过这个错误之后, 很多人说是因为web应用的naming-*.jar和tomcat自带的naming-*.jar有冲突, 把web应用中的naming-*.jar包删掉就好, 但是我连这个jar包都没有 <ResourceLink name="jdbc/BookDB" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="root" password="1234" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/BookDB?autoReconnect=true"/> 先改红色字,不行,确认以下内容.1.context.xml应该放在META-INF下.2.jar包位置.3.jndi在程序里配的名字. 还是不正确, jar包放置在了tomcat的lib里面, 名字是没有写错的 你这是啥啊url="jdbc:mysql://localhost:3306/BookDB?autoReconnect=true???典型的配置啊<Resource name="xxx" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="xx" password="xxx driverClassName="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@192.168.0.0:1521:orcl"/> --> </Context> 还是不正确, jar包放置在了tomcat的lib里面, 名字是没有写错的你这样,在context.xm中,在' <context>里'加上"<ResourceLink name="jdbc/mysql" global="jdbc/mysql" type="javax.sql.DataSourcer"/>",前面红色还是改为Resource看看. 这个url="jdbc:mysql://localhost:3306/BookDB?autoReconnect=true 是用来连接mysql数据库的格式, 您给的这个url="jdbc:oracle:thin:@192.168.0.0:1521:orcle"/> 是连接oracle数据库的格式吧 我不是很明白您的意思,我是这么理解的, 这么做还是不对<?xml version="1.0" encoding="ISO-8859-1"?><Context reloadable="true" path="/hello" docBase="hello"> <ResourceLink name="jdbc/mysql" global="jdbc/mysql" type="javax.sql.DataSourcer"/> <Resource name="jdbc/BookDB" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="root" password="1234" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/BookDB?autoReconnect=true"/> </Context> 我不是很明白您的意思,我是这么理解的, 这么做还是不对<?xml version="1.0" encoding="ISO-8859-1"?><Context reloadable="true" path="/hello" docBase="hello"> <ResourceLink name="jdbc/mysql" global="jdbc/mysql" type="javax.sql.DataSourcer"/> <Resource name="jdbc/BookDB" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="root" password="1234" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/BookDB?autoReconnect=true"/> </Context>还不对啊......那你在网上找找,我回去也再找找. 这个url="jdbc:mysql://localhost:3306/BookDB?autoReconnect=true 是用来连接mysql数据库的格式, 您给的这个url="jdbc:oracle:thin:@192.168.0.0:1521:orcle"/> 是连接oracle数据库的格式吧好吧 解决方案:你在%TOMCAT_HOME%\conf\Catalina\新建localhost下找到你的web应用对应的.xml文件,如test.xml,并在此文件的下添入代码:<ResourceLink name="jdbc/BookDB" global="jdbc/mysql" type="javax.sql.DataSourcer"/>重启tomcat。这个靠谱这种就是采用虚拟配置目录部署不需要把你的项目部署到tomcat,直接一个xml指向你项目的web-inf地址xml的名称就是你访问xml文件如下<?xml version="1.0" encoding="UTF-8"?><Context reloadable="false" docBase="D:/eclipse_workpase/项目名称/WebRoot" /><ResourceLink name="jdbc/BookDB" global="jdbc/mysql" type="javax.sql.DataSourcer"/>采用这种方法试下吧 这个前面有位前辈说了, 试了之后还是不成功.Name java:comp is not bound in this Context Cannot create JDBC driver of class '' for connect URL 'null' 还没有, 谢谢您, 我是个学生, 课业挺重的, 暂时只能继续向前学习, 等过段时间把jsp学完了, 再解决吧非常感谢您还想着我的问题, 谢谢 非常感谢dalor , EverWHL两位前辈.我把有关context.xml里面的配置写到了tomcat的conf文件夹下面的server.xml里面了, 然后就成功了, 好开心. 还没有, 谢谢您, 我是个学生, 课业挺重的, 暂时只能继续向前学习, 等过段时间把jsp学完了, 再解决吧非常感谢您还想着我的问题, 谢谢努力吧,毕竟你还在进步中,加油! servlet的访问地址问题 web页面上显示CPU的曲线动态图 面试:逻辑训练题 在Tomcat上运行正常的程序在WebSphere6.1上却不行??? jsp怎么把图象直接加到数据库里面去 类图中各种箭头的用法。。。 送分:一个小测试程序,2个语法错误,半天没找出来,帮忙看看 关于日文参数传递问题?? 有个规范建站市场的创业项目想法,电子商务大门已经打开,个人建站和建站企业很多,多则乱,建站市场需要一个整合标准,这个标准能解决客户的烦恼,确实有创业想法的联系。 Apache soap+tomcat 配置问题 关于<s:if>标签的问题 datetime转换的问题 从数据库查出数据报错
Connection conn = null;
Context ctx = null;
ctx = new InitialContext();
Context envContext = (Context) ctx.lookup("java:comp/env");
DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/BookDB");
// 取出连接
conn = ds.getConnection();
这个帖子我看过, 我的tomcat的admin进不去
数据源是由servlet容器创建和管理维护的, 所以使用数据源, 在tomcat的bin文件夹下面也必须有相应的数据库连接驱动, 而且我在web应用的lib下面也有这个连接驱动
这个envContext的作用是什么?
现在还报什么错吗
现在报错:
javax.naming.NameNotFoundException: Name java:comp is not bound in this Context
我上网查过这个错误之后, 很多人说是因为web应用的naming-*.jar和tomcat自带的naming-*.jar有冲突, 把web应用中的naming-*.jar包删掉就好, 但是我连这个jar包都没有
maxActive="100" maxIdle="30" maxWait="10000"
username="root" password="1234"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/BookDB?autoReconnect=true"/> 先改红色字,不行,确认以下内容.1.context.xml应该放在META-INF下.
2.jar包位置.
3.jndi在程序里配的名字.
还是不正确, jar包放置在了tomcat的lib里面, 名字是没有写错的
url="jdbc:mysql://localhost:3306/BookDB?autoReconnect=true???
典型的配置啊<Resource name="xxx" auth="Container"
type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000"
username="xx" password="xxx driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@192.168.0.0:1521:orcl"/> -->
</Context>
还是不正确, jar包放置在了tomcat的lib里面, 名字是没有写错的你这样,在context.xm中,在' <context>里'加上"<ResourceLink name="jdbc/mysql" global="jdbc/mysql" type="javax.sql.DataSourcer"/>",前面红色还是改为Resource看看.
这个url="jdbc:mysql://localhost:3306/BookDB?autoReconnect=true 是用来连接mysql数据库的格式, 您给的这个url="jdbc:oracle:thin:@192.168.0.0:1521:orcle"/> 是连接oracle数据库的格式吧
我不是很明白您的意思,我是这么理解的, 这么做还是不对<?xml version="1.0" encoding="ISO-8859-1"?><Context reloadable="true" path="/hello" docBase="hello">
<ResourceLink name="jdbc/mysql" global="jdbc/mysql" type="javax.sql.DataSourcer"/>
<Resource name="jdbc/BookDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="root" password="1234"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/BookDB?autoReconnect=true"/>
</Context>
我不是很明白您的意思,我是这么理解的, 这么做还是不对<?xml version="1.0" encoding="ISO-8859-1"?><Context reloadable="true" path="/hello" docBase="hello">
<ResourceLink name="jdbc/mysql" global="jdbc/mysql" type="javax.sql.DataSourcer"/>
<Resource name="jdbc/BookDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="root" password="1234"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/BookDB?autoReconnect=true"/>
</Context>
还不对啊......
那你在网上找找,我回去也再找找.
这个url="jdbc:mysql://localhost:3306/BookDB?autoReconnect=true 是用来连接mysql数据库的格式, 您给的这个url="jdbc:oracle:thin:@192.168.0.0:1521:orcle"/> 是连接oracle数据库的格式吧
好吧
解决方案:
你在%TOMCAT_HOME%\conf\Catalina\新建localhost下找到你的web应用对应的.xml文件,
如test.xml,并在此文件的下添入代码:
<ResourceLink name="jdbc/BookDB" global="jdbc/mysql" type="javax.sql.DataSourcer"/>重启tomcat。
这个靠谱
这种就是采用虚拟配置目录部署
不需要把你的项目部署到tomcat,直接一个xml指向你项目的web-inf地址
xml的名称就是你访问
xml文件如下<?xml version="1.0" encoding="UTF-8"?>
<Context reloadable="false" docBase="D:/eclipse_workpase/项目名称/WebRoot" />
<ResourceLink name="jdbc/BookDB" global="jdbc/mysql" type="javax.sql.DataSourcer"/>采用这种方法试下吧
这个前面有位前辈说了, 试了之后还是不成功.
Name java:comp is not bound in this Context
还没有, 谢谢您, 我是个学生, 课业挺重的, 暂时只能继续向前学习, 等过段时间把jsp学完了, 再解决吧非常感谢您还想着我的问题, 谢谢
我把有关context.xml里面的配置写到了tomcat的conf文件夹下面的server.xml里面了, 然后就成功了, 好开心.
还没有, 谢谢您, 我是个学生, 课业挺重的, 暂时只能继续向前学习, 等过段时间把jsp学完了, 再解决吧非常感谢您还想着我的问题, 谢谢努力吧,毕竟你还在进步中,加油!