0

我想在同一个 Windows 上运行 2 个 tomcat 实例。

所以我采取了以下步骤:

  1. 将tomcat下载到文件夹tomcat1
  2. 创建了一个新文件夹:tomcat2
  3. 将 conf 文件夹从 tomcat1 复制到 tomcat2
  4. 创建空文件夹:日志、临时、工作
  5. 创建了一个文件夹 bin 并在里面放了 2 个命令:

启动.bat

set CATALINA_BASE=C:\Programs\apache2
set CATALINA_HOME=C:\Programs\apache1
C:\Programs\apache1\bin\startup.bat

关机.bat

set CATALINA_BASE=C:\Programs\apache2
set CATALINA_HOME=C:\Programs\apache1
C:\Programs\apache1\bin\shutdown.bat 

我还将apache2 的 server.xml 中的以下内容更改为:

<Server port="8006" shutdown="SHUTDOWN">
<Connector port="8081" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8444" />
<Connector port="8010" protocol="AJP/1.3" redirectPort="8444" />

apache1中是:

<Server port="8005" shutdown="SHUTDOWN">
 <Connector port="8080" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443" />
 <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

当我从 apache1 运行 startup.bat 时,虽然在其 server.xml 中配置为端口 8080,但它占用了 8081 端口。这样,当我想从 apache2 运行 startup.bat 时 - 端口正忙!无论哪种方式,如果我先尝试 apache2 然后再尝试 apache1 我都不能同时运行。

怎么了?

我正在使用 Windows 7 和 tomcat 7

4

2 回答 2

1

默认CATALINA_HOME设置为 in catalina.bat,它与bin子目录的位置有关。

所以你可以解压缩一个 tomcat 二进制文件c:\tomcat1和另一个文件c:\tomcat2,每个文件都会自动拥有自己的CATALINA_HOME.

至于您用 shared 描述的场景CATALINA_HOME,我看不出任何会阻止它运行正常的情况。我会仔细检查您startup.bat是否调用了正确的实例,并且每个实例都server.xml配置了正确的端口。

于 2012-06-21T15:46:01.870 回答
0

推荐的解决方案:为您的第二个 tomcat 实例选择另一个端口,而不是 8081。
替代解决方案:更改 McAfee FrameworkService.exe 使用的端口。是一个讨论选项的线程

我在尝试在端口 8080 和 8081 上运行 2 个 tomcat 实例时遇到了类似的问题。按照此处netstat -aon的建议使用以查看打开的连接和相关进程 ID 的列表。跟踪这个 id,在我的例子中是 1988,回到进程显示 McAfee FrameworkService.exe 进程正在使用 8081。tasklist /FI "PID eq 1988"

于 2012-07-20T21:05:30.437 回答