jenkins 远程启动tomcat失败

今天在使用jenkins进行部署的时候,遇到了两个问题,已解决,特此记录。

问题一:

远程启动tomcat,tomcat已经启动,但是服务访问失败,检查catalina.out也可以明显看到这一点

登陆远程服务器,执行xx/tomcat/bin/startup.sh启动成功。

启动命令完全一致;

解决思路:

    远程启动tomcat后,使用ps -ef|grep tomcat 拿到进程的完整启动命令。

    本地启动tomcat后,使用ps -ef|grep tomcat 拿到进程的完整启动命令。

    两个命令对比,会发现使用的jdk不一致,其他的完全一致。

    远程启动的启动命令中的jdk路径:/usr/bin/java ,执行 /usr/bin/java -version 拿到远程启动命令的版本,可以再次清晰看到两者不一致。

    远程服务器上执行 java -version,得到的版本号与本地启动命令中的版本号一致。

最终,知道,所有的一切是因为jdk版本不一致导致的,联系运维解决服务器的环境问题。

问题二:

远程启动jar,启动命令:cd xx; nohup java -jar xx.jar    > /dev/null 2>&1 & 执行后,在远程服务器使用ps -ef|grep java xx.jar查不到进程;

本地启动:nohup java -jar xx.jar > /dev/null 2>&1 & 启动后,使用ps -ef|grep xx.jar可以看到对应进程;

解决思路:

    此时远程启动没有任何日志,只能知道是没有启动。

    调整启动命令为:nohup java -jar xx.jar > xx.out 2>&1 &, 此时能够看到xx.out中的报错信息为:

        Exception in thread "main" java.lang.unsupportedClassversionError: xx/MainApplication: Unsupported major.minor version 52.0

            at java.lang.ClassLoader.defineClass1(Native Method)

            at java.lang.ClassLoader.defineClass(ClassLoader.java:800)

            ......

这个错误一般是值指ar包的打包的jdk版本和启动的jdk版本不一致。

远程服务器本地执行:java -version,版本为1.8

远程命令执行:ssh [email protected] java -version,得到的版本为1.7,

此时就可以很清楚的知道是环境问题导致的两个版本不一致,从而导致远程启动问题。

你可能感兴趣的:(jenkins 远程启动tomcat失败)