今天用jenkins导入的时候,遇到了两个问题,解决了,所以记录下来。
问题1 :
远程启动tomcat时,tomcat已经启动,但访问服务器失败。 检查catalina.out也很明显。
登录远程服务器并成功启动xx/tomcat/zydmn/startup.sh。
启动命令完全一致;
解决方案:
远程启动tomcat后,使用ps -ef|grep tomcat获取进程的完整启动命令。
在本地启动tomcat后,使用ps -ef|grep tomcat获取进程的完整启动命令。
通过比较这两个命令,可以看到使用的jdk不匹配,其他都完全匹配。
运行远程启动启动命令的jdk路径:/usr/zydmn/java、/usr/zydmn/java -version以获取远程启动命令的版本,可以再次清楚地看到它们之间的不匹配。
将在远程服务器上运行java -version,以生成与本地启动命令的版本号相匹配的版本号。
最终,他们知道一切都是由于jdk版本不匹配导致的,并与承运人联系以解决服务器环境问题。
问题2 :
远程启动jar,命令:启动cd xx; 运行nohup java -jar xx.jar /dev/null 21后,无法在远程服务器上使用ps -ef|grep java xx.jar检测到进程。
本地启动: nohup java -jar xx.jar /dev/null 21启动后,可以使用ps -ef|grep xx.jar查看相应的进程;
解决方案:
此时远程启动没有任何日志,只知道没有启动。
启动命令是nohup java -jar xx.jar xx.out 21,xx.out上显示的错误信息如下:
exceptioninthread ' main ' Java.lang.unsupportedclassversionerror : xx/main application 3360 unsupported major.minorververver
at Java.lang.class loader.define class1(native method ) )。
at Java.lang.class loader.define class (class loader.Java :800 ) )。
.
此错误通常意味着ar包的打包jdk版本与启动的jdk版本不匹配。
远程服务器本地运行: java -version,版本1.8
远程命令执行: ssh xx@xx.xx.xx.xx java -version,得到的版本为1.7、
此时,很明显,由于环境问题,两个版本不一致,出现了远程启动问题。