Cannot create JDBC driver of class '' for connect URL 'null'

 如果你在使用jndi配置数据源的过程中反复出现下面的错误,而且你已经使用了很多方式都无法获取正确的数据源,那么就不要再浪费时间了,删除其他的配置方法按下面的方法进行配置,保证你能够有一个好使的数据源,

使用jndi的方式配置tomcat的数据源报了下面的错误:

org.apache.commons.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'
at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:780)
at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540)
at com.TestConn.doGet(TestConn.java:29)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)

at javax.servlet.http.HttpServlet.service(HttpServlet.Java:802)

解决方法:这说明你的jdbc的数据源并没有被注册,jndi的数据源大致分两部:
第一步:配置web.xml文件
在你的项目的web.xml文件之中加入如下的配置:
<resource-ref>
   <description>DB Connection</description>
<!--这个就是你要连接的数据源名称webglDS_A6,下面的Context.xml文件中的数据源名称一定要和此名称一致-->
<res-ref-name>webglDS_A6</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
         </resource-ref>
第二步:配置Context.xml文件
Context.xml文件之中就是连接数据库的详细信息(注意是Context.xml而不是context.xml),这部分的设置有两种情况:
情况一:项目是通过eclipse视图部署到tomcat之中
这时,你只需要在META-INF目录下面建一个Context.xml文件,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<!--下面的配置只是针对tomcat5.0 -->
<Resource name="webglDS_A6" type="javax.sql.DataSource" />
<ResourceParams name="webglDS_A6">
<parameter>
<name>auth</name>
<value>Container</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>5000</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>10</value>
</parameter>
<parameter>
<name>password</name>
<value>1</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:oracle:thin:@10.11.112.80:1521:orcl</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>oracle.jdbc.driver.OracleDriver</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>1</value>
</parameter>
<parameter>
<name>username</name>
<value>pay</value>
</parameter>
</ResourceParams>
<!-- tomcat6.0和tomcat7.0用下面的配置 
<Resource name="webglDS_A6" auth="Container" 
type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" 
username="pay" password="1" driverClassName="oracle.jdbc.driver.OracleDriver" 
url="jdbc:oracle:thin:@10.11.112.80:1521:orcl"/> -->
</Context>
    只是有一点tomcat5.0和tomcat6.0\7.0采用不同的设置,这一点无关紧要,下面就可以对数据源写一个jsp或者servlet进行测试,下面是主体代码,数据源名称为webglDS_A6
   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/webglDS_A6");
   // 取出连接
   conn = ds.getConnection();
情况二,项目直接以war包的形式部署到tomcat之中,这时候就需要在服务器的conf\Catalina\localhost目录下面建立以你的项目名称命名的xml文件,例如我的项目叫hh,那么文件名就应该叫hh.xml,建好之后的目录应该是这样的conf\Catalina\localhost\hh.xml
hh.xml文件的内容就是上述Context.xml文件的内容,只是在Conext节点加入下面的信息
<Context docBase="E:\123\jakarta-tomcat-5.0.28\webapps\hh" path="/hh" reloadable="true">
这样之后你的数据源就可用了。
总结一下:jndi的数据源配置分两步:配置web.xml和配置Context.xml,没有其他
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值