b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

关于Tomcat与MySQL连接池问题的解析!

电脑杂谈  发布时间:2019-12-29 09:01:35  来源:网络整理

好空间网络 下载源码_好空间网络_qq空间说说批量删除源码

关于Tomcat与MySQL连接池问题的解析(原创)

研究了两天,终于有所收唬望对蒜所帮助。首先请储意:这里尤其讨论Tomcat5.5版本中幽问题,为什么尤其单对这妇,我一会儿便加以说胋r>

问题一:Cannot create JDBC driver of class '' for connect URL 'null'

碽r>[原襯>很多炮配置好$Tomcat/conf/server.xml、$Tomcat/conf/context.xml、蒃B-INF/web.xml褐惮接池便会喝上错沃位般是一有邦定数据源(实际错蝦iverClassName、url的设置为空,但聪定不会忘掉设置这附,所以肯定是磋置完了没有进行连结!)。通常翠置数据源有两种方法(在$Tomcat/conf/context.xml的设置方式就不单算了),一种是在$Tomcat/conf/server.xml的</GlobalNamingResources>前添加如下代码:

设置方式一:

<Resource

//数据源名称

type="javax.sql.DataSource"

driverClassName="com.mysql.jdbc.Driver" //这就是我今天提及的driverClassName的设置

password="admin" //密码

maxIdle="2"

maxWait="5000"

username="root" //用户名

url="jdbc:mysql://localhost:3306/test?autoReconnect=true" //URL,就是刚刚提及的url

maxActive="4"/>

除了有注释的地方外,都是设置连结数量、闲置状款动状课数,如果你桨实验,可以毋须修改。这种方式配制骇果等同于在Tomcat图形界面中配置操譩r>另一种发法是在$Tomcat/conf/server.xml的<Context ...></Context>中加入如下代码:

设置方式二:

<Resource auth="Container" type="javax.sql.DataSource"/>

好空间网络_好空间网络 下载源码_qq空间说说批量删除源码

<ResourceParams>

<parameter>

<name>factory</name>

<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>

</parameter>

<parameter>

<name>username</name>

<value>root</value>

</parameter>

<parameter>

<name>password</name>

<value>admin</value>

</parameter>

<parameter>

<name>driverClassName</name>

<value>com.mysql.jdbc.Driver</value>

</parameter>

<parameter>

好空间网络 下载源码_qq空间说说批量删除源码_好空间网络

<name>url</name>

<value>jdbc:mysql://localhost:3306/test?autoReconnect=true</value>

</parameter>

<parameter>

<name>initialSize</name>

<value>20</value>

</parameter>

<parameter>

<name>maxActive</name>

<value>30</value>

</parameter>

<parameter>

<name>maxWait</name>

<value>10000</value>

</parameter>

</ResourceParams>

这样设置的一般目的是想使数据源在一咐的映射目录中实现,也就是一般这段代码弛<Context docBase="具体目录(如D:\webapps\myjsp)" path="访问名称(如/myjsp)" reloadable="true"></Context>,这样就可以通过访问:8080/myjsp/XXX.jsp来访问D:\webapps\myjsp中的某敢趁娼菰椿衅渌僮∈菰础Ⅻbr>

问题是,无论哪种方式,醇没有进行连结!如果不进行ResourceLink,也免籩an等未能找到你设置的代码,又砸至driverClassName跟url呢?实际上任何一庚设置都不会被找到的!

好空间网络 下载源码_qq空间说说批量删除源码_好空间网络

[解鲸]

知道了本意就便于了。无论你是使用哪种方式。

解鲸一:

如果想在某镐目录内实现ResourceLink,就在<Context ...></Context>中间添加<ResourceLink global="数据源名称" type="javax.sql.DataSource"/>,注意假如你不了解代码关联关系,一定靳在<Context ...>和好。

解鲸二:

如果想弄成全局性的,在所有映射目录中均可以使用,就干脆写在$Tomcat/conf/context.xml中,蚄了。

一般囟“数据源名称”和“映射蝴称”设置成同一庚如我是这么设置的<ResourceLink global="jdbc/test" type="javax.sql.DataSource"/>。

另外应当说泌Tomcat5.5中,如果你川第二种设置方式,即使加上ResourceLink,也会踊能正常运行的问题。

问题二:javax.naming.NameNotFoundException: Name XXX is not bound in this Context

碽r>[原襯>Tomcat5.5中好空间网络 下载源码,在<Context ...><Context>中设置数据源不能正常运行,我看过一位外国人写的贴子,我数学水平不高,不过碰巧能读懂。他说这是胰较高的版本中(应该是说Tomcat跟dbcp),factory的值由org.apache.commons.dbcp.BasicDataSourceFactory改为了org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory。但是我进行过尝试,并不能解锯。而且我发觉Tomcat5.5标准版本自带dbcp,就在$Tomcat\common\lib中。我看过另一秆的解说,他说用第二种设置方式是不行的。这说摸种设置方式只适用先前版本好空间网络 下载源码,现在的版本我不知道要在哪部份啄,但错坞一拼设置,服我不到“数据源名称”对应的数据源。

[解鲸]

知道原疑以解籼看来只有把数据源声胠t;GlobalNamingResources>中能够泼。所以赐根据第一种设置方式设置Tomcat5.5(这就是我为何尤其讲Tomcat5.5)就可以了。

问题三:Cannot load JDBC driver class 'com.mysql.jdbc.Driver'

碽r>[原襯>不光对于mysql,对于饼据库,只要找不到,就会抛硁not load JDBC driver class",那么为何会找不到驱动类呢?如何能够找到呢?其实挺迹

[解鲸]

只要把jdbc拷贝至$Tomcat\common\lib中就可以了。

问题四:Cannot get a connection, pool exhausted

[原襯>很棘不能推行连结,连接池溢斥说媚连结资源都耗费了,原毅没有及时回收他们。

好空间网络_好空间网络 下载源码_qq空间说说批量删除源码

[解鲸]

及时并正确使用close()方法释放ResultSet、Statement、Connection,具体句子我就不说了,推糹nally中写。

总结:所以,如果你想用Tomcat5.5推行一篙源连接池,只要三步。

第一:设置数据源,推技形操祖,如果自动就在$Tomcat/conf/server.xml中</GlobalNamingResources>前添加如下代码:

<Resource

//数据源名称

type="javax.sql.DataSource"

driverClassName="com.mysql.jdbc.Driver" //这就是我今天提及的driverClassName的设置

password="admin" //密码

maxIdle="2"

maxWait="5000"

username="root" //用户名

url="jdbc:mysql://localhost:3306/test?autoReconnect=true" //URL,就是刚刚提及的url

maxActive="4"/>

注释参数记得修改成自己的。

第二:设置Resource连结。推糡omcat/conf/context.xml中写入<ResourceLink global="数据源名称" type="javax.sql.DataSource"/>,如果想就在某诜映射目录实现,就在$Tomcat/conf/server.xml中还要映射的目录中的<Context ...>弘。

第三:将JDBC拷贝至$Tomcat\common\lib中

另外,我在这里不具体说梦谍据源,这糍比较棘但要留意,DataSource ds=(DataSource)envCtx.lookup("引用数据源");语句中"引用数据源"只的是"映射蝴称",不是"数据源名称",所以我建议唇便蒲两钢设成同一给且特雹意及时释放闲置资源,不然连接池都会溢砨r>

以上是我叫究的一些成果,我还是抚者,希望这篇文章对蒜所帮助。有哪些问题可以联系我,我的邮箱是:lk_l@sina.com(爱看霓虹灯的人)。本文为neonlight.bokee.com(CSDN_MathMagician)原创,不可转载!2006年08月11日


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-135062-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...