在tomcat5.5版本以前,可以說jndi配置相對是比較復雜的,而且據網友說用tomcat5.0的控制臺配置數據庫連接池經常有問題,而且文檔寫得又不詳細。
tomcat5.5出來后,jndi的配置方法是大大地節省,而且很簡潔,個人覺得比以前的版本好很多。這里大概給出一個配置例子。tomcat數據庫連接池jndi配置有兩種,一種是全局的,一種是context的,下面主要是講全局的,并且以一個實例jdbc/byisdb為例子
???
一、tomcat5.0配置方法
1、首先在server.xml里面配置,找到下面的配置
<!-- Global JNDI resources -->
<GlobalNamingResources>
</GlobalNamingResources>
2、在里面增加一個Resource



3、在下面增加屬性



































































4、在你的應用的web.xml里面增加






OK,到此配置完畢,可以用下面的幾段代碼進行測試





二、tomcat5.5配置
1、打開conf/context.xml里面
添加下面的配置

2在你的應用的web.xml里面增加






同樣,可以用上面的代碼進行測試。
2
一.在tomcat_home\common下放入jdbc的三個驅動程序(一定要的哦),可以在微軟的網站上去下載,安裝的SQLSERVER2k默認的用戶名是sa,密碼是空,但密碼為空并不代表沒有密碼,所以你的url中一定要定義username和password,最好是重設定一下密碼
二.出現不能引用錯誤的話一般就是路徑沒有寫對,tomcat默認的路徑是tomcat_home\webapps\不過使用5.5.x的話,按下面方法就行,不需要配置路徑,而且也不用在youwebapp\WEB-INF\web.xml文件配置引用
三.tomcat5.5.x版的server.xml配置與tomcat5.0的配置不同,下面列舉三種在tomcat5.5.x的配置方法,如果配置不正確會出現javax.naming.NameNotFoundException: Name is not bound in this Context 錯誤
方式一、全局數據庫連接池
1、通過管理界面配置連接池,或者直接在tomcat\conf\server.xml的GlobalNamingResources中增加
<Resource name="jdbc/mydb" type="javax.sql.DataSource" password="mypwd" driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver" maxIdle="2" maxWait="5000" validationQuery="select 1" username="sa" url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb" maxActive="4"/>
2、在tomcat\webapps\myapp\META-INF\context.xml的Context中增加:
<ResourceLink global="jdbc/mydb" name="jdbc/mydb" type="javax.sql.DataSource"/>
這樣就可以了。
方式二、全局數據庫連接池
1、同上
2、在tomcat\conf\context.xml的Context中增加:
<ResourceLink global="jdbc/mydb" name="jdbc/mydb" type="javax.sql.DataSource"/>
方式三、局部數據庫連接池
只需在tomcat\webapps\myapps\META-INF\context.xml的Context中增加:
<Resource name="jdbc/mydb" type="javax.sql.DataSource" password="mypwd" driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver" maxIdle="2" maxWait="5000" validationQuery="select 1" username="sa" url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb" maxActive="4"/>
參數說明:
driveClassName:JDBC驅動類的完整的名稱;
maxActive:同時能夠從連接池中被分配的可用實例的最大數;
maxIdle:可以同時閑置在連接池中的連接的最大數;
maxWait:最大超時時間,以毫秒計;
password:用戶密碼;
url:到JDBC的URL連接;
user:用戶名稱;
validationQuery:用來查詢池中空閑的連接。
以上三種方式在tomcat 5.5.4下都可以。另外,sql server的jdbc driver是從微軟網站上下載的sql server jdbc (sp3)。
四.報錯org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory ([Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.)此是一個小問題,因為我的SQLSERVER2K的服務改成手動的,所以每次啟動后就要手動的啟動SQLSERVER2K,由于一下子不記的啟動了,所以報些錯誤,所以如果你經常要用到SQLSERVER2K的話,最好不要將其改為手動啟動
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
