黑匣子 之 一次springboot上线问题

本文记录了一次SpringBoot项目的部署经历,开发环境为JDK1.8,生产环境为JRE1.6,因版本不一致导致部署失败。通过调整生产环境的JDK版本与开发环境保持一致,最终解决了部署问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 今天部署一个springboot项目,生产环境一直难以成功,报错java.lang.UnsupportedClassVersionError: javax/annotation/ManagedBean : Unsupported major.minor version 51.0;

    此项目开发环境为JDK1.8,springboot-version:1.5.9 reease;而生产环境JRE版本为1.6.0_45。结合错误提示信息和网上查找资料,初步得出结论,代码编译环境版本不一致,而相对应的字节码解析不一样。网上提供的资料如图:

遂决定更换开发环境JDK版本,与生产环境保持一致。考虑到更换生产环境JRE可能会牵涉较多工程,这样更改可能会相对省时。
    
 于是操作,后发现仍有其他错误,并根据错误提示一步步脱离实际问题更远的操作(当时也考虑可能内嵌tomcat版本问题,更换tomcat版本)。。。。。终于无济于事,回到远点。
    
 最终妥协,在生产商安装JDK1.8环境,考虑到 不影响其他的项目,决定此项目单独使用jdk1.8环境,此次不做生产环境的配置的变更。因为jar项目使用java -jar启动,遂在启动脚本中指定好调用的java目录。如:nohup /usr/java/jdk1.8.0_161/bin/java -jar joke_fxq_2.0-0.0.1-SNAPSHOT.jar >log.file 2>&1 &;项目成功启动,问题得以解决。
    
 其中犯过一些错误,引以为戒。因为tomcat项目,只需在容器启动脚本中设置环境变量即可,export java_home 。。。。。。,遂如之操作(只是设置了环境变量,并没有更改启动脚本),最后失败。jar程序因为需要java 命令调用,而java只是根据当前环境变量获取内容,所以同样需要指定具体使用的启动命令。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值