多个tomcat 端口冲突?修改server.xml不生效?

在服务器上配置多个tomcat,经常会出现端口冲突的问题,如果百度的话,

可以看到一大堆,但大部分文章都只能解决特定场景的问题,换个场景,可能就不生效了。

好吧,先说说问题的解决办法,再做一波分析。

1.修改server.xml中的端口配置,保证两点即可,第一不和其它tomcat端口号重复,第二,在允许的端口号范围内

1) <Server port="8001" shutdown="SHUTDOWN">

2)<Connector port="8088" maxHttpHeaderSize="8192"  
  maxThreads="150" minSpareThreads="25" maxSpareThreads="75"  
  enableLookups="false" redirectPort="8443" acceptCount="100"  
  connectionTimeout="20000" disableUploadTimeout="true" />

3)<Connector port="8009"  

  enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />

2.编辑bin目录下startup.bat文件,有一行 if not "CATALINA_HOME" == ""  goto gotHome,在这句前面加上rem(表示注释)

3.编辑bin目录下catalina.bat文件,跟2一样,同样注释掉if not "CATALINA_HOME" == ""  goto gotHome

4.运行tomcat,启动成功。

原因分析:

       发生闪退或者报错后,tomcat下有个log文件夹,catalina文件中会保存启动日志,一般都是报错说什么端口占用,

jvm_bind之类的的,也就是布置多个tomcat时端口冲突,正常情况下,修改server.xml中的端口配置后,就应该不会出现这个问题,但不幸的是,大部分人改了之后不仅继续报这个错,而且会看到catalina日志中的端口号还是修改之前的!!!

      这说明什么,说明你启动的不是当前目录下tomcat,为什么会出现这种情况,查看startup.bat文件代码(虽然不会写,但逻辑看得懂,百度发现rem表示注释这一行),if not "CATALINA_HOME" == ""  goto gotHome,这一行表示如果环境变量

CATALINA_HOME不为空,就跳转到标号gotHome:,而这句后面代码,set "CATALINA_HOME=%CURRENT_DIR%"(将CATALINA_HOME设置为当前目录)就不会执行。这就是问题根本所在,执行startup.bat时,CATALINA_HOME里面有值。

     如果CATALINA_HOME有值的话,会是什么值?根据日志中端口修改没生效,里面的值是上一个tomcat的路径,有两种原因,

    其一,CATALINA_HOME被设置成了环境变量,也就是永久型变量,可以通过我的电脑--属性--高级系统配置--环境变量查看具体内容,

    其二,第一个tomcat启动时,CATALINA_HOME值为空,于是CATALINA_HOME被设置成了第一个tomcat的当前路径。

    围绕第一个原因可以百度到很多种方法,但有些方法是个坑,比如叫你直接修改CATALINA_HOME的,修改后使用其它tomcat同样的错误会继续出现。还有的可以用,比如设置CATALINA_HOME1,2,3之类的,改完再在startup.bat文件里把所有CATALINA_HOME替换成CATALINA_HOME1,2,3,这种设置起来太麻烦。还有直接在startup.bat文件头部显示的设置CATALINA_HOME为当前路径,这种方法也还可行,就是觉得把startup.bat里面其实有了这种处理,代码读起来就像是

  A=“当前路径”,如果A不为空,执行goto,如果A为空,执行 A=“当前路径”个人觉得好傻。

我选择注释掉判断CATALINA_HOME是否为空的语句,不管它是否有值,有什么值,通通设成当前路径就完事。

        我踩的坑可能比别人深,因为我就算注释了,也还是会出现报错,看日志文件,配置依然没有生效。注意到startup.bat里有这么一句:set "EXECUTABLE=%CATALINA_HOME%\bin\catalina.bat",于是查看catalina.bat,里面同样出现了使用

CATALINA_HOME,跟startup的情况一样,注释掉了判断语句后,tomcat总算启动成功。



  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值