关于tomcat连接池问题

14 篇文章 0 订阅
10 篇文章 0 订阅

好久没有亲自写代码了,基本都是从自己多年来积累的一些源程序直接拷贝、修改。

但近来帮朋友做个小办公系统时,发现一个奇怪的现象,特此写出来,供自己日后备忘,同时,也给遇到相同问题的同行一个参考。

 

在tomcat5.0中,我部署的连接池是可以正常使用的,但到了6.0就报出错误:

org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'

数据库为msSQL server 2000SP2,配置代码为(server.xml部分):

        <Resource name="jdbc/SqlserverDB" auth="Container" type="javax.sql.DataSource"/>
       
        <ResourceParams name="jdbc/SqlserverDB">
                <parameter>
                    <name>factory</name>
                    <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
                </parameter>
           
                <parameter>
                    <name>maxActive</name>
                    <value>150</value>
                </parameter>
           
                <parameter>
                  <name>maxIdle</name>
                  <value>150</value>
                </parameter>
           
                <parameter>
                  <name>maxWait</name>
                  <value>10000</value>
                </parameter>
           
                <parameter>
                 <name>username</name>
                 <value>sa</value>
                </parameter>
                <parameter>
                 <name>password</name>
                 <value>123</value>
                </parameter>
               
                        <parameter>
                          <name>removeAbandoned</name>
                          <value>true</value>
                        </parameter>

                        <parameter>
                              <name>removeAbandonedTimeout</name>
                              <value>20</value>
                        </parameter>
                        <parameter>
                              <name>logAbandoned</name>
                            <value>true</value>
                        </parameter>
               
                <parameter>
                   <name>driverClassName</name>
                   <value>net.sourceforge.jtds.jdbc.Driver</value>
                </parameter>
               
                <parameter>
                  <name>url</name>
                  <value>jdbc:jtds:sqlserver://192.168.1.175:1433/tan</value>
                </parameter>
        </ResourceParams>

问题搞懵了!!难道6.0不兼容5.0???

将原来的项目放到6.0下,竟然也报同样的错误!!

没办法了,看看DOC(http://127.0.0.1:8080/docs/jndi-datasource-examples-howto.html

直接从它上面复制示例代码,修改路径、驱动、用户和密码等,如下:

        <Resource name="jdbc/SqlserverDB" type="javax.sql.DataSource" auth="Container"
                driverClassName="net.sourceforge.jtds.jdbc.Driver" maxActive="100" maxIdle="30" maxWait="10000"
                url="jdbc:jtds:sqlserver://192.168.1.175:1433/luntan" username="sa" password="123" />
保存后,启动tomcat,测试页打开了!!

高兴的同时,不仅要问:为什么?why?なぜ?

 

对比上面两种写法,前者比后者多了几个参数,各个去掉,测试,不行!全部去掉,还是不行!

一个非常极端的想法从我心底产生了!难道6.0中不支持第一种写法了!!

应该不会吧!兼容,一直是我们软件开发的一个重要点啊!

 

时间精力都有限,这个问题暂时留下。

同时,希望看到这个文章并知道原因的,能留言指导一下,或者一起交流一下看法。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值