摘要:今天靜態資源包到我們環境中只涉及到靜態資源文件例如數據庫連接信息查詢語句等成功部署后啟動服務報錯如下經過分析和排查我們認為是本地的一種的問題上版本是打包涉及的和均是但本地的編譯版本是將其改為打包部署后進程正常啟動對這個問題網絡上普遍的說法是
今天Deploy靜態資源包到我們Production環境, package中只涉及到靜態資源文件, 例如數據庫連接信息, SQL查詢語句等. 成功部署后, 啟動服務報錯如下:
Exception in thread "main" java.lang.UnsupportedClassVersionError: JVMCFRE003 bad major version; class=support/operations/gtm/iosbackendmanager/BackendManager, offset=6 at java.lang.ClassLoader.defineClassImpl(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:324) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:155) at java.net.URLClassLoader.defineClass(URLClassLoader.java:715) at java.net.URLClassLoader.access$400(URLClassLoader.java:94) at java.net.URLClassLoader$ClassFinder.run(URLClassLoader.java:1169) at java.security.AccessController.doPrivileged(AccessController.java:492) at java.net.URLClassLoader.findClass(URLClassLoader.java:598) at java.lang.ClassLoader.loadClassHelper(ClassLoader.java:777) at java.lang.ClassLoader.loadClass(ClassLoader.java:750) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:341) at java.lang.ClassLoader.loadClass(ClassLoader.java:731) at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:495)
經過分析和排查, 我們認為是本地RAD(eclipse的一種)的JDK level問題, server上java版本是1.7, Ant打包涉及的source和target均是1.7, 但本地RAD的JDK編譯版本是1.8, 將其改為1.7, 打包部署后, 進程正常啟動.
對這個問題, 網絡上普遍的說法是"是因為我們使用高版本的JDK編譯的Java class文件試圖在較低版本的JVM上運行" , 所以解決辦法通常都是更改本地JDK編譯環境, 很典型的例子是這個: UnsupportedClassVersionError: JVMCFRE003 bad major version in WebSphere AS 7 . 但在這個case里, 我deploy的部分不涉及任何已編譯的class.所以在此存在兩個疑問:
offset=6是什么意思?
JDK編譯環境版本是否會影響靜態資源的編譯?
這也是第一次使用自動化打包和部署工具(UCD)來部署這一部分. 因為是生產環境, 所以在做這個Change之前還是比較緊張的, 預想的問題主要有兩個:
1, Deploy process問題, 2, 靜態資源亂碼問題.
第一個確實出了一點故障, 沒有bin路徑的改動, 但在process的步驟里沒有選擇"allow failure", 所以在復制bin文件夾時會報文件夾為空的錯并停止運行. 選上allow failure即可.
2, 亂碼問題是一如既往, 而這個版本的更改中更是涉及到了有currency符號: "¤". 所以只能文件以東歐編碼ISO-8859-2形式保存. 這還需要更多的調查, 源碼對于utf8和其他格式編碼的處理邏輯.
這次是預想的問題都沒有發生, 反而出現奇奇怪怪的問題, 搞的大家都很緊張, 好在問題已經解決. 不過還需要更多的調查.
how to check the jdk version used to compile a .class file - duplicate
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/74360.html
摘要:時間年月日星期二說明本文部分內容均來自慕課網。項目一個項目代表一個正在構建的組件比如一個文件,當構建啟動后,會基于實例化一個類,并且能夠通過變量使其隱式可用。任務動作定義了一個最小的工作單元。 時間:2017年05月16日星期二說明:本文部分內容均來自慕課網。@慕課網:http://www.imooc.com教學示例源碼:無個人學習源碼:https://github.com/zccod...
摘要:返回的是轉換為字符串后的值。默認行為禁止在一個中如果沒有定義域,那么將會默認分配一個域。通過在中設置這個字段可以阻止生成獲得。我們也能設置其它的安全等級如表示如果秒內寫操作沒有完成,將會超時。在,和方法只檢查頂級的的選項設置。 原文出處 名詞解釋 Schema: 一種以文件形式存儲的數據庫模型骨架,不具備數據庫的操作能力 Model: 由Schema編譯而成的假想(fancy)構造器...
摘要:你可以用此模板作為你應用程序的起點。上一篇之模板的學習之路主題布局配置下一篇之模板的學習之路前端自動化工具 前面我們將 Metronic 的結構和源碼大致瀏覽了一遍,Metronic 整個文件包有三百多兆,在實際項目中,我們肯定用不到所有文件,這時,我們需要做一些自定義。 自定義和擴展 CSS 部分 要重載 Metronic 主題的 CSS 樣式,我們可以定制 ../assets/la...
閱讀 3529·2021-11-22 11:59
閱讀 945·2021-09-27 13:36
閱讀 3603·2021-09-24 09:47
閱讀 2251·2021-09-01 11:39
閱讀 970·2021-08-31 09:37
閱讀 2304·2021-08-05 10:01
閱讀 1665·2019-08-30 15:55
閱讀 693·2019-08-30 15:54