java 远程启动tomcat_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 xx@xx.xx.xx.xx java -version,得到的版本为1.7,

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值