利用数据源对象建立数据库连接时的错误

就是在学习Servlet的时候,看到书上有另外一种方法来实现与数据库相连,但是自己在测试的时候出错了。
书上是这样写的

Context ctx = new InitialContext();
DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/bookstore");
conn = ds.getConnection();

报错了之后我又看了网上的另一种写法

Context ctx = new InitialContext();
Context envContext = (Context)ctx.lookup("java:comp/env");
DataSource ds = (DataSource)envContext.lookup("jdbc/bookstore");
conn = ds.getConnection();

还是不对。
下面是报错

 Name [jdbc/bookstore] is not bound in this Context. Unable to find [jdbc].
    at org.apache.naming.NamingContext.lookup(NamingContext.java:816)
    at org.apache.naming.NamingContext.lookup(NamingContext.java:173)
    at ch04.servlet.GetDBInfoServlet2.doGet(GetDBInfoServlet2.java:48)

下面是配置信息:
context.xml

<?xml version="1.0" encoding="UTF-8"?>
<Context>
    <Resource name="jdbc/bookstore" auth="Container"
    type="javax.sql.DataSource"
    maxActive="100" maxIdle="30" maxWait="10000"
    username="root" password="104679"
    driverClassName="com.mysql.jdbc.Driver"
    url="jdbc:mysql://localhost:3306/bookstore?autoReconnect=true"
    />
</Context>
阅读 2.2k
1 个回答

喔喔,已经试出来了,我在Tomcat目录的conf文件夹下的context.xml里面加了Resource那段xml代码,就好了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题