黑匣子 之 一次springboot上線問題

 今天部署一個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只是根據當前環境變量獲取內容,所以同樣需要指定具體使用的啓動命令。




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章