今天在使用cas(单点登录技术)和slor的时候,因为都是要部署在tomcat中,便分别放在了两个tomcat下,修改好端口后,启动其中一个,没有问题,但是再启动另一个的时候,就会显示端口被占用,明明已经修改过端口了,为什么还是显示端口占用呢?
这篇文章主要来说一下解决的办法,具体的原理方面涉及到了tomcat的原理及源码等方面,因此后面专门写一个原理解析。
原因:
因为你可能只修改了8080端口,而对于远程停服务端口(shutdown)和AJP端口(默认8009)并没有修改
步骤:
如果你要使用两个tomcat,其中一个可以默认不修改
对另外一个tomcat,打开conf下的server.xml文件
1、修改远程服务端口:<Server port="8005" shutdown="SHUTDOWN">,将8005改为其他的没在使用的端口号,如:8055
2、修改8080端口:改为你想要用来访问的端口即可(都懂,此略)
3、修改AJP端口:<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />,默认的是8009,将其改为其他没在使用的端口号,如8099
总之,这三个不要与另外一个tomcat中的端口一样就可以了,当然了,如果你配置多个tomcat,那就同理啦=。=
最后,启动这两个tomcat,你就会发现不再显示端口占用了,就正常起来啦=。=
当然了,我看有些资料说:增加环境变量CATALINA_HOME2,值为tomcat的地址,然后再在startup.bat和catalina.bat中配置CATALINA_HOME和CATALINA_BASE,这种方法我也试了试,但最终的结果是失败的,不知是不是我中间出了差错还是怎么,反正设置了好几种都行不通,所以,建议大家直接采用上边修改端口的方式=。=
我是小k,正在前行的路上不断摸索,希望踩过的坑能给同样前行的你有所帮助。
不求何时抵达终点,但求余生仍在路上前行=。=