從Tomcat 5.5 升級到 Tomcat 6.0時, 將${CATAINA_HOME}/common/lib 底下的jar檔copy到${CATAINA_HOME}/lib後, 若當初有設定使用Tomcat的 dbcp 來管理Database Connection Pool , 那麼在Run 的時候會出現 Name java:comp is not bound in this Connection 的錯誤, 這時透過修改 server.xml 及 context.xml 檔都沒用
後來上網查了一下, 發現原因是
有 jar 檔重覆了!!
因為Tomcat 6.0 把之前5.5.x版本的某些jar重整, 而與naming有關的三個jar檔被包入6.0版的兩個jar內
1.
naming-factory.jar 及
naming-resources.jar
=> 被包在
catalina.jar 內
2.
naming-factory-dbcp.jar
=> 被
tomcat-dbcp.jar 取代
所以把上面3個 naming-xxxx.jar 移掉應該就可正常使用dbcp了
ps. 在google時也找到了下面這個說法~
if you have appache commons naming jars in your webapp libraries, tomcat tomcat does not initialise jndi context for your resources in your web.xml. remove these jars
a)naming-common.jar,
b) naming-factory.jar
c) naming-resources.jar from you web app libraries
參考網址:
http://forums.sun.com/thread.jspa?threadID=5117657