<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title><![CDATA[Latest posts for the topic "從Tomcat 5.5 升到 Tomcat6.0 出現找不到 JNDI Naming 的問題"]]></title>
		<link>https://forum.andowson.com/posts/list/20.page</link>
		<description><![CDATA[Latest messages posted in the topic "從Tomcat 5.5 升到 Tomcat6.0 出現找不到 JNDI Naming 的問題"]]></description>
		<generator>JForum - http://www.jforum.net</generator>
			<item>
				<title>從Tomcat 5.5 升到 Tomcat6.0 出現找不到 JNDI Naming 的問題</title>
				<description><![CDATA[ 從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 檔都沒用 
<br>
<br>
後來上網查了一下, 發現原因是[color=red]有 jar 檔重覆[/color]了!! 
<br>
<br>
因為Tomcat 6.0 把之前5.5.x版本的某些jar重整, 而與naming有關的三個jar檔被包入6.0版的兩個jar內 
<br>
1. [color=blue]naming-factory.jar [/color]及 [color=blue]naming-resources.jar [/color] 
<br>
 =&gt; 被包在 [color=red]catalina.jar[/color] 內 
<br>
2. [color=blue]naming-factory-dbcp.jar [/color] 
<br>
 =&gt; 被 [color=red]tomcat-dbcp.jar [/color]取代 
<br>
<br>
所以把上面3個 naming-xxxx.jar 移掉應該就可正常使用dbcp了 
<br>
<br>
<br>
ps. 在google時也找到了下面這個說法~ 
<br>
[i]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 
<br>
<br>
a)naming-common.jar, 
<br>
b) naming-factory.jar 
<br>
c) naming-resources.jar from you web app libraries [/i] 
<br>
<br>
參考網址:[url]http://forums.sun.com/thread.jspa?threadID=5117657[/url]]]></description>
				<guid isPermaLink="true">https://forum.andowson.com/posts/preList/305/571.page</guid>
				<link>https://forum.andowson.com/posts/preList/305/571.page</link>
				<pubDate><![CDATA[Mon, 9 Mar 2009 15:28:47]]> GMT</pubDate>
				<author><![CDATA[ jhliang]]></author>
			</item>
			<item>
				<title>回覆:從Tomcat 5.5 升到 Tomcat6.0 出現找不到 JNDI Naming 的問題</title>
				<description><![CDATA[ 要避免這種升級Tomcat到新版本時多複製不同檔名但功能相同的舊版函式庫，就要先閱讀一下[url=http://tomcat.apache.org/tomcat-6.0-doc/RELEASE-NOTES.txt]RELEASE-NOTES[/url]或[url=http://tomcat.apache.org/tomcat-6.0-doc/changelog.html]Change Log[/url]。 
<br>
<br>
另外，我們可以實際分別下載一份Tomcat 5.5.27和Tomcat 6.0.18的壓縮檔，解壓縮後深入去瞭解一下可以發現： 
<br>
Tomcat 5.5.27的函式庫包含： 
<br>
${tomcat5.5_install_dir}/common/lib 
<br>
-rw-r--r-- 1 root root 112341 8月 29 2008 [color=blue]commons-el.jar[/color] 
<br>
-rw-r--r-- 1 root root 408842 8月 29 2008 [color=blue]jasper-compiler.jar[/color] 
<br>
-rw-r--r-- 1 root root 1395272 8月 29 2008 [color=blue]jasper-compiler-jdt.jar[/color] 
<br>
-rw-r--r-- 1 root root 77185 8月 29 2008 [color=blue]jasper-runtime.jar[/color] 
<br>
-rw-r--r-- 1 root root 49889 8月 29 2008 [color=green]jsp-api.jar[/color] 
<br>
-rw-r--r-- 1 root root 198057 8月 29 2008 [color=red]naming-factory-dbcp.jar[/color] 
<br>
-rw-r--r-- 1 root root 37296 8月 29 2008 [color=red]naming-factory.jar[/color] 
<br>
-rw-r--r-- 1 root root 48147 8月 29 2008 [color=red]naming-resources.jar[/color] 
<br>
-rw-r--r-- 1 root root 93538 8月 29 2008 [color=green]servlet-api.jar[/color] 
<br>
<br>
${tomcat5.5_install_dir}/common/i18n 
<br>
-rw-r--r-- 1 root root 51208 8月 29 2008 [color=red]tomcat-i18n-en.jar[/color] 
<br>
-rw-r--r-- 1 root root 42276 8月 29 2008 [color=green]tomcat-i18n-es.jar[/color] 
<br>
-rw-r--r-- 1 root root 38618 8月 29 2008 [color=green]tomcat-i18n-fr.jar[/color] 
<br>
-rw-r--r-- 1 root root 44527 8月 29 2008 [color=green]tomcat-i18n-ja.jar[/color] 
<br>
<br>
${tomcat5.5_install_dir}/server/lib 
<br>
-rw-r--r-- 1 root root 27202 8月 29 2008 [color=green]catalina-ant.jar[/color] 
<br>
-rw-r--r-- 1 root root 24178 8月 29 2008 catalina-ant-jmx.jar 
<br>
-rw-r--r-- 1 root root 227651 8月 29 2008 [color=blue]catalina-cluster.jar[/color] 
<br>
-rw-r--r-- 1 root root 667864 8月 29 2008 [color=green]catalina.jar[/color] 
<br>
-rw-r--r-- 1 root root 116032 8月 29 2008 catalina-optional.jar 
<br>
-rw-r--r-- 1 root root 63285 8月 29 2008 catalina-storeconfig.jar 
<br>
-rw-r--r-- 1 root root 112005 8月 29 2008 commons-modeler-2.0.1.jar 
<br>
-rw-r--r-- 1 root root 20298 8月 29 2008 servlets-cgi.renametojar 
<br>
-rw-r--r-- 1 root root 19306 8月 29 2008 servlets-default.jar 
<br>
-rw-r--r-- 1 root root 6010 8月 29 2008 servlets-invoker.jar 
<br>
-rw-r--r-- 1 root root 52914 8月 29 2008 servlets-ssi.renametojar 
<br>
-rw-r--r-- 1 root root 23519 8月 29 2008 servlets-webdav.jar 
<br>
-rw-r--r-- 1 root root 168936 8月 29 2008 tomcat-ajp.jar 
<br>
-rw-r--r-- 1 root root 25902 8月 29 2008 tomcat-apr.jar 
<br>
-rw-r--r-- 1 root root 19392 8月 29 2008 [color=green]tomcat-coyote.jar[/color] 
<br>
-rw-r--r-- 1 root root 89473 8月 29 2008 tomcat-http.jar 
<br>
-rw-r--r-- 1 root root 31801 8月 29 2008 tomcat-jkstatus-ant.jar 
<br>
-rw-r--r-- 1 root root 266690 8月 29 2008 tomcat-util.jar 
<br>
<br>
Tomcat 6.0.18的函式庫包含： 
<br>
${tomcat6_install_dir}/lib 
<br>
-rw-r--r-- 1 root root 10805 7月 22 2008 annotations-api.jar 
<br>
-rw-r--r-- 1 root root 49145 7月 22 2008 [color=green]catalina-ant.jar[/color] 
<br>
-rw-r--r-- 1 root root 123115 7月 22 2008 [color=blue]catalina-ha.jar[/color] 
<br>
-rw-r--r-- 1 root root 1129912 7月 22 2008 [color=green]catalina.jar[/color] 
<br>
-rw-r--r-- 1 root root 228471 7月 22 2008 catalina-tribes.jar 
<br>
-rw-r--r-- 1 root root 27690 7月 22 2008 [color=blue]el-api.jar[/color] 
<br>
-rw-r--r-- 1 root root 102282 7月 22 2008 [color=blue]jasper-el.jar[/color] 
<br>
-rw-r--r-- 1 root root 511634 7月 22 2008 [color=blue]jasper.jar[/color] 
<br>
-rw-r--r-- 1 root root 1395264 7月 22 2008 [color=blue]jasper-jdt.jar[/color] 
<br>
-rw-r--r-- 1 root root 72183 7月 22 2008 [color=green]jsp-api.jar[/color] 
<br>
-rw-r--r-- 1 root root 83787 7月 22 2008 [color=green]servlet-api.jar[/color] 
<br>
-rw-r--r-- 1 root root 742085 7月 22 2008 [color=green]tomcat-coyote.jar[/color] 
<br>
-rw-r--r-- 1 root root 197443 7月 22 2008 [color=blue]tomcat-dbcp.jar[/color] 
<br>
-rw-r--r-- 1 root root 45686 7月 22 2008 [color=green]tomcat-i18n-es.jar[/color] 
<br>
-rw-r--r-- 1 root root 42702 7月 22 2008 [color=green]tomcat-i18n-fr.jar[/color] 
<br>
-rw-r--r-- 1 root root 49019 7月 22 2008 [color=green]tomcat-i18n-ja.jar[/color] 
<br>
<br>
由Release Notes我們可以大致的瞭解這些jar檔的功能： 
<br>
A standard installation of Tomcat 6.0 makes all of the following APIs available 
<br>
for use by web applications (by placing them in "lib"): 
<br>
* annotations-api.jar (Annotations package) 
<br>
* catalina.jar (Tomcat Catalina implementation) 
<br>
* catalina-ant.jar (Tomcat Catalina Ant tasks) 
<br>
* catalina-ha.jar (High availability package) 
<br>
* catalina-tribes.jar (Group communication) 
<br>
* el-api.jar (EL 2.1 API) 
<br>
* jasper.jar (Jasper 2 Compiler and Runtime) 
<br>
* jasper-el.jar (Jasper 2 EL implementation) 
<br>
* jasper-jdt.jar (Eclipse JDT 3.3 Java compiler) 
<br>
* jsp-api.jar (JSP 2.1 API) 
<br>
* servlet-api.jar (Servlet 2.5 API) 
<br>
* tomcat-coyote.jar (Tomcat connectors and utility classes) 
<br>
* tomcat-dbcp.jar (package renamed database connection pool based on Commons DBCP) 
<br>
<br>
所以簡單來說，如果直接把${tomcat5.5_install_dir}/common/lib下的jar檔全部複製到${tomcat6_install_dir}/lib下，就可能會出現版本錯亂的問題。一些原本該使用Tomcat 6.0版本的jar檔變成了Tomcat 5.5版本的jar檔，這就是問題發生的主因了。 
<br>
<br>
對於升級Tomcat 5.5到Tomcat 6.0，我的建議作法是， 
<br>
1.先在一部測試機上安裝Tomcat 6 
<br>
2.將原先的webapp程式碼複製過去 
<br>
3.設定Tomcat server.xml或context.xml 
<br>
4.起動Tomcat 6.0 
<br>
5.開啟瀏覽器瀏覽網頁，並檢查是否有出現找不到的類別之類的錯誤訊息，再將需要的函式庫一一補上，此外，將這些新增的函式庫檔案記錄下來。 
<br>
6.測試正常後，即可在上線機器上正式部署此webapp。]]></description>
				<guid isPermaLink="true">https://forum.andowson.com/posts/preList/305/572.page</guid>
				<link>https://forum.andowson.com/posts/preList/305/572.page</link>
				<pubDate><![CDATA[Mon, 9 Mar 2009 22:01:52]]> GMT</pubDate>
				<author><![CDATA[ andowson]]></author>
			</item>
	</channel>
</rss>