1-Tomcat

来源:互联网 发布:电影 画面 知乎 编辑:程序博客网 时间:2024/05/16 07:44
1-如何設定 Tomcat 多版本並存的開發環境
(
在5.5的下载页面上你可以找到:
Java location: The installer will use the registry or the JAVA_HOME environment variable to determine the base path of a J2SE 5 JRE.
看来tomcat也会使用注册表去查询JDK的目录。
)
Tomcat 的版本更新很快,各個版本也不盡相同,如果你現在使用的版本已經很習慣了,也沒什麼問題,你很不想換版本,沒關係,開發環境嗎,只要你個人覺得很方便就可以了,不用去追求不斷的版本更新。
但如果,你想試試新的版本,而又不想改變目前的開發環境,那麼你可以試試這裡所說的,讓多個 Tomcat 版本並存於你的電腦上。

要想讓不同的版本 Tomcat 並存於你的電腦上,第一個要求是,千萬不要下載 tomcatxxx.exe 的安裝程式,也就是說,Tomcat 不要用安裝的,請改下載 tomcatxxx.zip,下載之後,自己再解壓縮就好了。
解壓縮的 Tomcat,要啟動及關閉當然沒有安裝的那麼簡單,不過也不難,差別只在,Tomcat 用安裝的,它會自己去尋找 JDK 的所在,你不用改設定,就可以用 Program menu 去啟動,而用解壓縮的,你必須修改 $TOMCAT_HOME/bin/ 目錄下的 startup.bat 及 shutdown.bat。
在上述二個 .bat 檔案中,在 if "%OS%" == "Windows_NT" setlocal 的下一行,加上二行設定如下: 
set JAVA_HOME=C:/j2sdk142
set CATALINA_HOME=C:/Tomcat5024

第一行是設定你的 JDK 在那個目錄,記得只要設定到 JDK 安裝的根目錄即可,不用設定到 jre/bin ... 之類的。
第二行就是設定你的 Tomcat 程式是解壓縮在那個目錄,同樣的,只要設定到 Tomcat 根目錄即可。

完成設定後,執行 startup.bat 就可以啟動 Tomcat 了。

接下來,你當然不想同一套程式,在 Tomcat 4.1.27 的 webapps 下一份,在 Tomcat 5.0.24 的 webapps 下又有一份吧 ?

請先改變舊有的習慣,請將 webapps 固定下來,你可以在 C:/ 下,建立一個 webapps 的目錄,然後,請至各版本的
$TOMCAT_HOME$/conf/ 下,修改 server.xml。在 server.xml 中,找到 <HOST ....
> 的 Tag,修改 appBase="webapps",加上完整的路徑,變更到你的目錄, appBase="C:/webapps" 。
這樣修改之後,當你有不同的版本的 Tomcat ,就不需要到處 copy webapps 內的程式了。

當然,Tomcat 本身的目錄下,另有一些與版本相關的
application,如:balancer、jsp-examples、ROOT、servlets-examples、tomcat-docs、

webdav 等等,原則上,這些在開發環境中,並沒有太大的用處,你可以完全不用理會。

完成了上述的設定之後,如果你想同時啟動二個版本的 Tomcat,來作一個比較,有二個地方你必須修改,因為預設的 TCP Port 是相同的,你必須進行修改才不會造成衝突。

a. <Server port="8005" shutdown="SHUTDOWN" debug="0">

預設是 8005,你可以調整成 8006, 8007, 8008, .....,不要重覆就可以了。調整之後,一樣可以用 shutdown.bat 去停止 Tomcat,不會有問題的。

b. 當然是 <Connector port="81" .../> ,你必須用不同的 port 才行。

2-如何加速 Tomcat 的啟動速度
如果要讓 Tomcat 啟動速度加快,就儘量讓 Tomcat 少載入一些東東吧,以下這些方法可以幫助你:

不要啟動 admin, load balancer 及 manager module

在 Tomcat 5.x 版本中,預設是會啟動這三個 Module 的,要想取消,請到以下目錄中,將所有的 xml 改名即可。

$TOMCAT_HOME$/conf/Catalina/localhost/ ,預設有 admin.xml, balancer.xml, manager.xml 三個。

改名之後,除了無法使用 Tomcat 內建的 admin tools 及 load balancer 之外,不會影響到開發的。

刪除掉 webapps 目錄下無用的目錄

如:balancer、jsp-examples、ROOT、servlets-examples、tomcat-docs、webdav 等,webapps 下目錄越多, Tomcat 啟動的速度就越慢。

把 server.xml 中,沒有使用到的功能 Marked 掉

請註解以下的 tag:這是 Message bean 用的,如果你沒用,就請註解掉。

<Listener className="org.apache.catalina.mbeans.ServerLifecycleListener"
debug="0"/>
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"
debug="0"/>

請註解決掉 <GlobalNamingResources>...</GlobalNamingResources>

這一段是 Tomcat admin 用的,用來記錄 Tomcat 的 admin accout/password,由於我們很少使用
Tomcat 的 admin tools,況且前一段也取消了 admin module
的載入,所以這一段已經沒有用了。不過,註解掉這一段時,請同時註解掉在 <Engine ...> block 內的
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
debug="0" resourceName="UserDatabase"/> 這二個是相關聯的,不註解決這一段的話,Tomcat 的啟動就會失敗。

開發環境中,不建議搭配 Apache,因為 Tomcat 與 Apache 一般是透過 JK Module,如果開發環境中採用 Apache+Tomcat,那每次 Tomcat 重起,Apache 就得跟著重起,相當不方便。

所以,在 Tomcat Stand-Alone mode 下,請註解掉

<Connector port="8009"

enableLookups="false" redirectPort="8443" debug="0"

protocol="AJP/1.3" /> 這一段是啟動 AJP,用來與 Apahce 整合的,註解掉的話,啟動會快一些。


3-又一篇文章

如果你的机器有多个Tomcat,当你执行一个Tomcat的startup命令时,它执行的是你希望的那个吗?

      我机器有多个Tomcat的目录,因为它不用安装,所以,我就进入到一个Tomcat的bin目录,执行startup.bat,结果发现不对,它执行的是另一个目录下的Tomcat。

      后来想明白了,是CATALINA_HOME的问题,不管你执行的是那个目录下的启动命令,而真正执行的是CATALINA_HOME配置的那个Tomcat的命令,或者说startup会寻找CATALINA_HOME配置的目录,启动那个Tomcat。

      切记,否则,会被耍得很郁闷......

      另外,catalina*.bat文件也很有用,你可以自己编辑这个文件,为它指定JAVA_HOME,这样你就可以不用事先安装JDK或者JRE,自己 的程序中打包一个JDK,然后,指定JAVA_HOME为自己的这个JDK的相对路径,然后用安装打包工具,如NSIS,Wise等打包,然后,安装会把 这些东西都复制到指定的路径下,你的程序直接执行startup命令就可以了,这样即使用户不懂技术,安装步骤也不复杂。

      还有,好像是Tomcat4.1.29开始,Tomcat对Get的处理和Post不再一样,就带来了Tomcat的URIEncoding的问题,具体解决办法是配置URIEncoding="字符集",
 





原创粉丝点击