CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2EE / EJB / JMS

JSP连接数据源报这种错原因出在哪儿呀,急在线等!

楼主iriver103(至尊玉)2006-03-17 12:56:33 在 Java / J2EE / EJB / JMS 提问

%TOMCAT_HOME%/conf/server.xml中Context元素如下:  
   
  <Context   path="/ch13_jdbc"   docBase="D:/MyPrj/ch13_jdbc/ch13_jdbc"   debug="0"   reloadable="true"   crossContext="true">  
  <Resource   name="jdbc/bn"   auth="Container"   type="javax.sql.DataSource"/>  
  <ResourceParams   name="jdbc/bn">  
  <parameter>  
  <name>factory</name>  
  <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>  
  </parameter>  
  <parameter>  
  <name>driverClassName</name>  
  <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>  
  </parameter>  
  <parameter>  
  <name>url</name> <value>jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=jspdev</value>  
  </parameter>  
  <parameter>  
  <name>username</name>  
  <value>sa</value>  
  </parameter>  
  <parameter>  
  <name>password</name>  
  <value>sa</value>  
  </parameter>  
  </ResourceParams>  
  </Context>  
   
  连接此数据源的JSP代码如下:  
   
  <%@page   contentType="text/html;   charset=gb2312"%>  
  <%@page   import="javax.naming.Context,javax.sql.DataSource,java.sql.*,javax.naming.InitialContext"%>  
  <%  
  DataSource   ds=null;  
  try{  
      Context   initCtx=new   InitialContext();  
      Context   envCtx=(Context)initCtx.lookup("java:comp/env");  
      //从Context中loolup数据源  
      ds=(DataSource)envCtx.lookup("jdbc/bn");  
      if(ds!=null){  
          out.println("已经获得数据源:"+ds.toString()+"<p>");  
          Connection   con=ds.getConnection();  
          Statement   st=con.createStatement();  
          ResultSet   rs=st.executeQuery("select   *   from   book");  
          out.println("以下是从数据库中读取出来的数据:<br>");  
          while(rs.next()){  
              out.println("bookName:"+rs.getString("bookName")+"<br>");  
          }  
      }  
      else{  
          out.println("连接数据源失败!");  
      }  
  }  
  catch(Exception   e){  
      out.println(e);  
      e.printStackTrace();  
  }  
  %>  
   
  %TOMCAT_HOME%/commons/lib下的jar包也没有问题  
  运行结果在页面上显示:  
  已经获得数据源:org.apache.tomcat.dbcp.dbcp.BasicDataSource@cafb56  
   
  1-->org.apache.tomcat.dbcp.dbcp.SQLNestedException:   Cannot   create   JDBC   driver   of   class   ''   for   connect   URL   'null'  
   
  请问高手们问题出在哪儿呀? 问题点数:10、回复次数:6Top

1 楼iriver103(至尊玉)回复于 2006-03-17 12:58:17 得分 0

更正:out.println("1-->"+e);Top

2 楼mudboy()回复于 2006-03-17 13:26:13 得分 5

需要在你的${tomcat_home}\conf\Catalina\localhost增加一个与你上下文名字一样的XML文件,如:TraFuse.xml  
  用了数据源的话,里面要有类似如下的内容:  
  <Context   docBase="TraFuse"   path="/TraFuse">  
      <ResourceLink   global="jdbc/bn"   name="jdbc/bn"   type="javax.sql.DataSource"/>  
  </Context>  
  Top

3 楼iriver103(至尊玉)回复于 2006-03-19 13:47:09 得分 0

不是那个问题呀楼上兄弟  
  因为显示已经获得了数据源  
  只是无法获得连接  
  不知怎么回事Top

4 楼billlion(小胖)回复于 2006-03-21 13:53:14 得分 5

你好像没有导入JDBC的驱动程序吧?先把jdbc驱动放到你的项目的lib文件夹,然后用class.forname()导入。  
  例如:  
  Class.forName(OracleJDBCDriver).newInstance();  
   
  试试行不行。Top

5 楼iriver103(至尊玉)回复于 2006-03-23 12:59:40 得分 0

还是不行呀!  
  我用的是数据源进行连接Top

6 楼iriver103(至尊玉)回复于 2006-03-23 22:50:19 得分 0

好了好了,原来是少了两个包  
  commons-collection包  
  和  
  commons-pool包Top

相关问题

  • JSP连接db2数据库
  • jsp数据库连接。
  • jsp连接数据库
  • jsp连接数据库的小问题,比较菜(在线等)
  • 请问jsp中怎样连接数据库? (在线等)
  • JSP连接数据库怎么连啊?在线等,谢谢
  • jsp连接数据库急问!(在线等)
  • jsp怎么和mysql数据库连接?????
  • JSP数据库连接问题
  • 如何在jsp连接mysql数据库

关键词

  • 数据
  • 连接
  • jdbc
  • commons
  • tomcat
  • apache
  • 数据源
  • dbcp
  • 如下
  • 获得

得分解答快速导航

  • 帖主:iriver103
  • mudboy
  • billlion

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo