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 的下一行,加上二行设定如下:
1 set JAVA_HOME=C:/j2sdk142
2 set CATALINA_HOME=C:/Tomcat5024
(其实这一步可以不用的,起码我在弄是不用的。我直接能开得起来。因为我一开始就在系统环境变量里头设置了JDK等等的)
第一行是设定你的 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="8080" .../> ,你必须用不同的 port 才行。
(这才是关键,我的主要设置也就是这里而已,其他都是比较次要的)
这里还有一个要注意的,就是用户登录
conf里头有个文件tomcat-users.xml
这里就得改下。废话我也不多说。直接把我的粘上来,大家参考即是。
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
<role rolename="manager"/>
<role rolename="tomcat"/>
<role rolename="admin"/>
<role rolename="role1"/>
<user username="tomcat" password="tomcat" roles="tomcat"/>
<user username="both" password="tomcat" roles="tomcat,role1"/>
<user username="admin" password="" roles="admin,manager"/>
<user username="role1" password="tomcat" roles="role1"/>
</tomcat-users>
到些,我的tomcat已经可以并存了。
总结:
一,首先得用绿色版本的tomcat
二,默认的8005和8080两个端口要改。
两个版本的这两个端口必须不一样,像我5.5的为8005,8050,6.0的为8008,8080
三,tomcat-users.xml用户设置下,虽然登陆也没啥用,但是好歹设置好点呗。。。
--------------------------------------
以下可看可不看的。
如何加速 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 用的,如果你没用,就请註解掉。
1 <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener"
2 debug="0"/>
3 <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"
4 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 整合的,註解掉的话,啟动会快一些。
转之http://hi.baidu.com/cpring/blog/item/10029cf452d602e87709d740.html