Tomcat 6,配置了連接池,可是運行總是報HTTP Status 500 - javax.servlet.ServletException: org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'的錯誤,檢查URL沒有錯啊!
上網查了下,Tomcat 6的配置和以前的不同了,不推薦在server.xml中進行配置,而是在context.xml中進行配置才是更好的方法。是站點目錄下的context.xml文件,不是tomcat_home\conf下的。tomcat_home\webapps\yourApp\META-INF\context.xml,我的網站目錄中沒有context.xml,于是創建一個,這樣可以在不同的網站下單獨配置連接池了,并且不需要重啟Tomcat,Tomcat會自動重載。
運行環境:MyEclipse 6.5
context.xml例:
在此種配置連接池后,然后試著刪除context.xml給配置文件,同時清除了Tomcat目錄下的work目錄中的內容,然后從新運行了一下,神奇的是還可以正常運行??
造成以上的原因是:此種配置方法,MyEclipse部署后會自動在 apache-tomcat-6.0.37\conf\Catalina\localhost目錄下將以上的conext.xml文件拷貝到其中并以項目的Web Context-root名重命名,所以刪除了context.xml文件后還可以正常運行。同時值得注意的是在MyEclipse修改context.xml文件應用程序不會再重新把apache-tomcat-6.0.37\conf\Catalina\localhost目錄下的文件做相應的修改,即修改無效。(不知道這是不是MyEclipse 6.5的問題,也不知道其他版本的MyEclipse是不是也出現這樣的問題)
還可以使用全局配置方式
第一步:配置tomcat下的conf下的context.xml文件,在之間添加連接池如下:?
Xml代碼?
第二步:配置你的應用下的web.xml中的之間加入:?
上網查了下,Tomcat 6的配置和以前的不同了,不推薦在server.xml中進行配置,而是在context.xml中進行配置才是更好的方法。是站點目錄下的context.xml文件,不是tomcat_home\conf下的。tomcat_home\webapps\yourApp\META-INF\context.xml,我的網站目錄中沒有context.xml,于是創建一個,這樣可以在不同的網站下單獨配置連接池了,并且不需要重啟Tomcat,Tomcat會自動重載。
運行環境:MyEclipse 6.5
context.xml例:
<?xml version="1.0" encoding="UTF-8"?>
<Context reloadable="true" crossContext="true"><!-- Default set of monitored resources --><WatchedResource>WEB-INF/web.xml</WatchedResource><!-- Uncomment this to disable session persistence across Tomcat restarts --><!--<Manager pathname="" />--><Resource name="jdbc/ConnectionPool"
auth="Container"
type="javax.sql.DataSource"
maxActive="20"
maxIdle="5"
maxWait="10000"
username="sa"
password="admin"
url="jdbc:sqlserver://localhost:1433;DatabaseName=db_net"
driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"/>
</Context>
在此種配置連接池后,然后試著刪除context.xml給配置文件,同時清除了Tomcat目錄下的work目錄中的內容,然后從新運行了一下,神奇的是還可以正常運行??
造成以上的原因是:此種配置方法,MyEclipse部署后會自動在 apache-tomcat-6.0.37\conf\Catalina\localhost目錄下將以上的conext.xml文件拷貝到其中并以項目的Web Context-root名重命名,所以刪除了context.xml文件后還可以正常運行。同時值得注意的是在MyEclipse修改context.xml文件應用程序不會再重新把apache-tomcat-6.0.37\conf\Catalina\localhost目錄下的文件做相應的修改,即修改無效。(不知道這是不是MyEclipse 6.5的問題,也不知道其他版本的MyEclipse是不是也出現這樣的問題)
還可以使用全局配置方式
第一步:配置tomcat下的conf下的context.xml文件,在之間添加連接池如下:?
Xml代碼?
<Resource name="jdbc/ConnectionPool"
auth="Container"
type="javax.sql.DataSource"
maxActive="20"
maxIdle="5"
maxWait="10000"
username="sa"
password="admin"
url="jdbc:sqlserver://localhost:1433;DatabaseName=db_net"
driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"/>
</Context>
第二步:配置你的應用下的web.xml中的之間加入:?
<resource-ref><description>SQL server text app</description><res-ref-name>jdbc/ConnectionPool</res-ref-name><res-type>javax.sql.DataSource</res-type><res-auth>Container</res-auth></resource-ref>