日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
MySQL連接池與Tomcat相關(guān)問題解答

以下的文章主要 講述的是關(guān)于tomcat(一個十分好用的JSP運行平臺)和MySQL連接池相關(guān)問題的詳細解析詳,我前兩天在一個信譽度很好的網(wǎng)站看見的資料,覺得挺好,就拿出來供大家分享。

研究了一天,終于有所收獲,希望對大家有所幫助。首先請大家注意:這里尤其討論tomcat(一個很好用的JSP運行平臺)5.5版本中遇到的問題,為什么尤其單對這個版本,我一會兒便加以說明。

問題一:Cannot create JDBC driver of class '' for connect URL 'null'

答:

[原因分析]

很多朋友在配置好$tomcat(一個很好用的JSP運行平臺)/conf/server.xml(標準化越來越近了)、$tomcat(一個很好用的JSP運行平臺)/conf/context.xml(標準化越來越近了)、甚至WEB-INF/web.xml(標準化越來越近了)后發(fā)現(xiàn)調(diào)用MySQL連接池便會出現(xiàn)以上錯誤。分析錯誤原因,一般是因為大家沒有邦定數(shù)據(jù)源(實際錯誤原因是因為driverClassName、url的設(shè)置為空,但大家肯定不會忘記設(shè)置這個地方,所以肯定是大家設(shè)置完了沒有進行連接!)。通常大家配置數(shù)據(jù)源有兩種方式(在$tomcat(一個很好用的JSP運行平臺)/conf/context.xml(標準化越來越近了)的設(shè)置方法就不單算了),一種是在$tomcat(一個很好用的JSP運行平臺)/conf/server.xml(標準化越來越近了)的前添加如下代碼:

設(shè)置方法一:

name="jdbc/test" //數(shù)據(jù)源名稱

type="javax.sql.DataSource"

driverClassName="com.MySQL(和PHP搭配之最佳組合).jdbc.Driver" //這就是我剛才提到的driverClassName的設(shè)置

password="admin" //數(shù)據(jù)庫密碼

maxIdle="2"

maxWait="5000"

username="root" //數(shù)據(jù)庫用戶名

url="jdbc:MySQL(和PHP搭配之最佳組合)://localhost:3306/test?autoReconnect=true" //數(shù)據(jù)庫URL,就是剛才提到的url

maxActive="4"/>

除了有注釋的地方外,都是設(shè)置連接數(shù)目、閑置狀況和活動狀況的參數(shù),如果你僅是做學(xué)習(xí)試驗,可以不必更改。MySQL連接池這種方法配制后的效果等同于在tomcat(一個很好用的JSP運行平臺)圖形界面中配置操作。

另一種發(fā)法是在$tomcat(一個很好用的JSP運行平臺)/conf/server.xml(標準化越來越近了)的中加入如下代碼:

設(shè)置方法二:

 
 
 
  1.  
  2.  
  3.  
  4. factory 
  5. org.apache(Unix平臺最流行的WEB服務(wù)器平臺).commons.dbcp.BasicDataSourceFactory 
  6.  
  7.  
  8. username 
  9. root 
  10.  
  11.  
  12. password 
  13. admin 
  14.  
  15.  
  16. driverClassName 
  17. com.MySQL(和PHP搭配之最佳組合).jdbc.Driver 
  18.  
  19.  
  20. url 
  21. jdbc:MySQL(和PHP搭配之最佳組合)://localhost:3306/test?autoReconnect=true 
  22.  
  23.  
  24. initialSize 
  25. 20 
  26.  
  27.  
  28. maxActive 
  29. 30 
  30.  
  31.  
  32. maxWait 
  33. 10000 
  34.  
  35.  

這樣設(shè)置的通常目的是想讓數(shù)據(jù)源在一個單獨的映射目錄中實現(xiàn),也就是通常這段代碼出現(xiàn)在,這樣就可以通過訪問http://localhost:8080/myjsp(SUN企業(yè)級應(yīng)用的首選)/XXX.jsp(SUN企業(yè)級應(yīng)用的首選)來訪問D:\webapps\myjsp(SUN企業(yè)級應(yīng)用的首選)中的某個jsp(SUN企業(yè)級應(yīng)用的首選)頁面進而調(diào)取數(shù)據(jù)源或進行其它操作調(diào)取數(shù)據(jù)源。

問題是,無論哪種方法,大家都沒有進行連接!如果不進行ResourceLink,也免或者bean等無法找到你設(shè)置的代碼,又怎么找到driverClassName和url呢?實際上任何一個參數(shù)設(shè)置都不會被找到的!

[解決方法]

知道了原因,解決也就方便了。無論你是使用哪種方法。

解決方法一:

如果想在某個映射目錄內(nèi)實現(xiàn)ResourceLink,就在中間添加,注意如果你不了解代碼關(guān)聯(lián)關(guān)系,一定緊緊貼在后寫就好。

解決方法二:

如果想變成全局性的,在所有映射目錄中均可以使用,就干脆寫在$tomcat(一個很好用的JSP運行平臺)/conf/context.xml(標準化越來越近了)中,萬事OK了。

一般大家把“數(shù)據(jù)源名稱”和“映射后的名稱”設(shè)置成同一個,例如我是這樣設(shè)置的。

另外必須說明,在tomcat(一個很好用的JSP運行平臺)5.5中,如果你像上面第二種設(shè)置方法,即使加上ResourceLink,也會遇到不能正常運行的問題。

問題二:javax.naming.NameNotFoundException: Name XXX is not bound in this Context

答:

[原因分析]

tomcat(一個很好用的JSP運行平臺)5.5中,在中設(shè)置數(shù)據(jù)源不能正常運行,我看過一位外國人寫的帖子,我英語水平不高,不過剛好能看懂。他說這是因為比較高的版本中(應(yīng)該是說tomcat(一個很好用的JSP運行平臺)和dbcp),factory的值由org.apache(Unix平臺最流行的WEB服務(wù)器平臺).commons.dbcp.BasicDataSourceFactory改為了org.apache(Unix平臺最流行的WEB服務(wù)器平臺).tomcat(一個很好用的JSP運行平臺).dbcp.dbcp.BasicDataSourceFactory。

但是我進行過嘗試,并不能解決問題。而且我發(fā)現(xiàn)tomcat(一個很好用的JSP運行平臺)5.5標準版本自帶dbcp,就在$tomcat(一個很好用的JSP運行平臺)\common\lib中。我看過另一個網(wǎng)友的解說,他說用第二種設(shè)置方法是不行的。這說明第二種設(shè)置方法只適用以前版本,現(xiàn)在的版本我不知道要在哪部分做更改,但錯誤原因是想一起那么設(shè)置,服務(wù)器找不到“數(shù)據(jù)源名稱”對應(yīng)的數(shù)據(jù)源。

[解決方法]

知道原因就可以解決了,看來只有把數(shù)據(jù)源聲明在中才能起作用。所以大家就按照第一種設(shè)置方法設(shè)置tomcat(一個很好用的JSP運行平臺)5.5(這就是我為什么尤其講tomcat(一個很好用的JSP運行平臺)5.5)就可以了。

問題三:Cannot load JDBC driver class 'com.MySQL(和PHP搭配之最佳組合).jdbc.Driver'

答:

[原因分析]

不光對于MySQL(和PHP搭配之最佳組合),對于別的數(shù)據(jù)庫,只要找不到,就會拋出這個錯誤"Cannot load JDBC driver class",那么為什么會找不到數(shù)據(jù)庫驅(qū)動類呢?如何才能找到呢?其實很簡單。

[解決方法]

只要把jdbc拷貝到$tomcat(一個很好用的JSP運行平臺)\common\lib中就可以了。

問題四:Cannot get a connection, pool exhausted

[原因分析]

很簡單,不能建立連接,MySQL連接池溢出,這說明你的連接資源都浪費了,原因是你沒有及時回收它們。

[解決方法]

及時并正確使用close()方法釋放ResultSet、Statement、Connection,具體語句我就不說了,推薦在finally中寫。

總結(jié):所以,如果你想用tomcat(一個很好用的JSP運行平臺)5.5建立一個數(shù)據(jù)源MySQL連接池,只要三步。

第一:設(shè)置數(shù)據(jù)源,推薦用圖形操作界面,如果手動就在$tomcat(一個很好用的JSP運行平臺)/conf/server.xml(標準化越來越近了)中前添加如下代碼:

 
 
 
  1. name="jdbc/test" //數(shù)據(jù)源名稱  
  2. type="javax.sql.DataSource" 
  3. driverClassName="com.MySQL(和PHP搭配之最佳組合).jdbc.Driver" //這就是我剛才提到的driverClassName的設(shè)置  
  4. password="admin" //數(shù)據(jù)庫密碼  
  5. maxIdle="2" 
  6. maxWait="5000" 
  7. username="root" //數(shù)據(jù)庫用戶名  
  8. url="jdbc:MySQL(和PHP搭配之最佳組合)://localhost:3306/test?autoReconnect=true" //數(shù)據(jù)庫URL,就是剛才提到的url  
  9. maxActive="4"/> 

注釋參數(shù)記得更改成自己的。

第二:設(shè)置Resource連接。推薦在$tomcat(一個很好用的JSP運行平臺)/conf/context.xml(標準化越來越近了)中寫入,如果想就在某個單獨映射目錄實現(xiàn),就在$tomcat(一個很好用的JSP運行平臺)/conf/server.xml(標準化越來越近了)中需要映射的目錄中的后寫入。

第三:將JDBC拷貝到$tomcat(一個很好用的JSP運行平臺)\common\lib中

另外,我在這里不詳細說明如何調(diào)用數(shù)據(jù)源,這個問題比較簡單,但要注意,DataSource ds=(DataSource)envCtx.lookup("引用數(shù)據(jù)源");語句中"引用數(shù)據(jù)源"只的是"映射后的名稱",不是"數(shù)據(jù)源名稱",所以我建議大家方便起見把兩個名字設(shè)成同一個。而且特別要注意及時釋放閑置資源,不然MySQL連接池就會溢出!

以上是我今天研究的一些成果,我還是個初學(xué)者,希望這篇文章對大家有所幫助。有什么問題可以聯(lián)系我,我的郵箱是:lk_l@sina.com(愛看霓虹燈的人)。本文為neonlight.bokee.com(CSDN_MathMagician)原創(chuàng),


分享標題:MySQL連接池與Tomcat相關(guān)問題解答
標題路徑:http://www.5511xx.com/article/codjhds.html