附带在Tomcat分发包中的RUNNING.txt文件指示使用CATALINA_BASE变量来启用多个Tomcat实例。但是,我该如何为每个Tomcat实例目录设置CATALINA_BASE环境变量?
在你的开发机器上拥有多个Tomcat实例非常好。以下是我通常在Windows上进行设置的步骤(设置的重点在第2、3、4和5步):
在C:\ tomcat-1 \ bin 目录中,创建一个名为startup.bat的文件,内容如下:
set CATALINA_BASE=C:\ tomcat-1
set CATALINA_HOME=C:\ apache-tomcat-6.0.20
C:\ apache-tomcat-6.0.20 \ bin \ startup.bat
在C:\ tomcat-1 \ bin 目录中,创建一个名为shutdown.bat的文件,内容如下:
set CATALINA_BASE=C:\ tomcat-1
set CATALINA_HOME=C:\ apache-tomcat-6.0.20
C:\ apache-tomcat-6.0.20 \ bin \ shutdown.bat
可选的:在C:\ tomcat-1 \ bin 目录下创建一个名为setenv.bat的文件,以设置在C:\ apache-tomcat-6.0.20 \ bin \ catalina.bat 中提到的任何环境变量。这是设置系统属性、JPDA地址等的地方。
尽量不要在名称中带有空格的目录中安装Tomcat。这样安装也可以,但这样做会减少出现问题的可能性。如果您正在使用Windows的“作为服务”选项,则我不知道该怎么做。
从这里开始,您应该能够隔离Tomcat实例。只需确保编辑conf\server.xml文件,以使关闭端口和HTTP连接器端口不干扰可能正在运行的其他Tomcat实例。我通常将8005、8006、8007等值分配给关闭端口,并将8080、8081、8082等值分配给HTTP连接器端口。
if not "%CATALINA_HOME%" == "" goto gotHome
set "CATALINA_HOME=%CURRENT_DIR%"
%CURRENT_DIR%
实际上是%cd%
。因此,如果您从另一个目录(使用其绝对路径)运行脚本,则%CATALINA_HOME%
将具有错误的值。 - ROMANIA_engineer这个链接有一个对我很有效的答案。其他一些答案似乎忽略了server.xml文件中必须修改的多个位置。在找到这个答案之前,我的几个Tomcat服务器之间存在端口冲突。我已经将HTTP/1.1连接器端口改为8081,但是忽视了对于我的Tomcat(版本7)来说显然很重要的一些其他端口的修改。顺便说一句,我有一个Tomcat服务版本和一个非服务版本。
First server.xml file
<connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
<server port="8005" shutdown="SHUTDOWN"/>
<connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
<connector port="8100" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
Second server.xml file
<connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
<server port="8006" shutdown="SHUTDOWN"/>
<connector port="8010" protocol="AJP/1.3" redirectPort="8443" />
<connector port="8101" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
http://www.ansoncheunghk.info/article/5-steps-install-multiple-apache-tomcat-instance-windows