【问题描述】
在PLM配置Autovue服务预览中,需要安装Apache Tomcat,并且需要启动这个服务。经常就会出现一些ApacheTomcat服务无法启动的情况,比如说点击startup.bat 会出现一闪而过这种情况。
【问题原因分析】
接下来是针对Apache Tomcat无法启动的一些常见原因做分析;
1、首先要确保JAVA等环境是配置正确的,可以通过PLM预览服务器的Autovue服务配置中配置好路径,会自动带到操作系统环境变量中的。
也可以手动配置环境变量(具体可以参考Autovue服务配置帖子有介绍环境变量的配置);
https://vip.kingdee.com/article/244061710456287232?productLineId=1&isKnowledge=2
2、Apache Tomcat安装路径中不能有中文目录及路径中不能有空格的情况,JAVA安装的路径建议也不要有中文和空格;
3、当上述环境配置均没问题,但是点击启动服务还是不能把Apache Tomcat服务启动,可以检查下tomcat的端口是否被占用,从tomcat配置文件server.xml中,我们可以看出在启动tomcat的时候默认启动了3个端口,
分别是8080(8443)、8009、8005。那来介绍下这三个端口:
8080(8443)端口:这是一个很熟悉的端口,我们正常要访问tomcat请求就是这个端口,用于监听浏览器发送的请求,8443是默认的https监听端口,默认是没有开启的,如果要开启由于tomcat不自带证书所以除了取消注释之外,还需要自己生成证书并指定。但注意一点8443这个https端口启用的话会与星空管理中心的https默认8443冲突的。
8009端口:Nginx、Apache等反向代理tomcat时就可以使用ajp协议反向代理到该端口。
虽然经常使用http反向代理到8080端口,但由于ajp建立tcp链接后一般长时间保持,从而减少Http反复进行tcp链接和断开的开销,所以反向代理中ajp是比http高效的。
8005端口:Tomcat监听的关闭端口,就是说这个端口负责监听关闭tomcat的请求,当执行shutdown.sh关闭tomcat就是链接8005端口执行SHUTDOWN命令;由此我们直接用telnet向8005端口执行SHUTDOWN来关闭tomcat,如果这个端口没被监听,那么sh脚本就是无效的。这个端口被占用也可能导致服务起不来,下面会有案例介绍。
【端口检测分析】
由于我们已经更改了Tomcat的默认访问服务端口8080为17952;所以需要去逐检查下17952、8005、8009相关端口的情况,命令如下:
netstat -ano|findstr "17952"
若没有显示任何结果说明端口是正常可以使用的,并没有被占用。
若显示如下结果:
netstat -ano|findstr "8005"
说明当前的Tomcat 8005端口被k3CloudTomcat服务占用了,
k3CloudTomcat服务是金蝶云星空部署的一个Tomcat服务,里面包含了三个站点信息及监听端口信息介绍如下;
BBCMallSite:这个站点是星空电商业务模块应用,监听的默认端口http是1700,https是1900;
QingSite:这个站点是星空轻分析业务模块应用,监听的默认端口http是1800,https是1950;
RetaiKtmSite:这个站点是星空零售模块应用,监听的默认端口http是7980,https是7990;
K3CloudTomcat默认负责监听关闭tomcat请求的8005端口其实已经更改成8105了,按理是不会变回去的。
所以当我们的PLM文档服务器和云星空服务器安装在一台机器上时,在配置安装Tomcat的时候也要避开上述的一些端口已经被使用,同时上述的一些端口占用也同样可以通过修改配置文件实现更改端口再启用服务。
大家有兴趣可以分别去看下K3CloudTomcat的配置文件和自己安装Apache Tomcat的配置文件对比,
K3CloudTomcat的配置文件:{星空安装目录}\Kingdee\K3Cloud\ApacheTomcat_K3Cloud\conf
Apache Tomcat的配置文件:{Tomcat安装目录}\apache-tomcat-8.5.59\conf
推荐阅读