摘要:今天靜態(tài)資源包到我們環(huán)境中只涉及到靜態(tài)資源文件例如數(shù)據(jù)庫(kù)連接信息查詢語(yǔ)句等成功部署后啟動(dòng)服務(wù)報(bào)錯(cuò)如下經(jīng)過(guò)分析和排查我們認(rèn)為是本地的一種的問(wèn)題上版本是打包涉及的和均是但本地的編譯版本是將其改為打包部署后進(jìn)程正常啟動(dòng)對(duì)這個(gè)問(wèn)題網(wǎng)絡(luò)上普遍的說(shuō)法是
今天Deploy靜態(tài)資源包到我們Production環(huán)境, package中只涉及到靜態(tài)資源文件, 例如數(shù)據(jù)庫(kù)連接信息, SQL查詢語(yǔ)句等. 成功部署后, 啟動(dòng)服務(wù)報(bào)錯(cuò)如下:
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)
經(jīng)過(guò)分析和排查, 我們認(rèn)為是本地RAD(eclipse的一種)的JDK level問(wèn)題, server上java版本是1.7, Ant打包涉及的source和target均是1.7, 但本地RAD的JDK編譯版本是1.8, 將其改為1.7, 打包部署后, 進(jìn)程正常啟動(dòng).
對(duì)這個(gè)問(wèn)題, 網(wǎng)絡(luò)上普遍的說(shuō)法是"是因?yàn)槲覀兪褂酶甙姹镜腏DK編譯的Java class文件試圖在較低版本的JVM上運(yùn)行" , 所以解決辦法通常都是更改本地JDK編譯環(huán)境, 很典型的例子是這個(gè): UnsupportedClassVersionError: JVMCFRE003 bad major version in WebSphere AS 7 . 但在這個(gè)case里, 我deploy的部分不涉及任何已編譯的class.所以在此存在兩個(gè)疑問(wèn):
offset=6是什么意思?
JDK編譯環(huán)境版本是否會(huì)影響靜態(tài)資源的編譯?
這也是第一次使用自動(dòng)化打包和部署工具(UCD)來(lái)部署這一部分. 因?yàn)槭巧a(chǎn)環(huán)境, 所以在做這個(gè)Change之前還是比較緊張的, 預(yù)想的問(wèn)題主要有兩個(gè):
1, Deploy process問(wèn)題, 2, 靜態(tài)資源亂碼問(wèn)題.
第一個(gè)確實(shí)出了一點(diǎn)故障, 沒(méi)有bin路徑的改動(dòng), 但在process的步驟里沒(méi)有選擇"allow failure", 所以在復(fù)制bin文件夾時(shí)會(huì)報(bào)文件夾為空的錯(cuò)并停止運(yùn)行. 選上allow failure即可.
2, 亂碼問(wèn)題是一如既往, 而這個(gè)版本的更改中更是涉及到了有currency符號(hào): "¤". 所以只能文件以東歐編碼ISO-8859-2形式保存. 這還需要更多的調(diào)查, 源碼對(duì)于utf8和其他格式編碼的處理邏輯.
這次是預(yù)想的問(wèn)題都沒(méi)有發(fā)生, 反而出現(xiàn)奇奇怪怪的問(wèn)題, 搞的大家都很緊張, 好在問(wèn)題已經(jīng)解決. 不過(guò)還需要更多的調(diào)查.
how to check the jdk version used to compile a .class file - duplicate
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/74360.html
摘要:時(shí)間年月日星期二說(shuō)明本文部分內(nèi)容均來(lái)自慕課網(wǎng)。項(xiàng)目一個(gè)項(xiàng)目代表一個(gè)正在構(gòu)建的組件比如一個(gè)文件,當(dāng)構(gòu)建啟動(dòng)后,會(huì)基于實(shí)例化一個(gè)類,并且能夠通過(guò)變量使其隱式可用。任務(wù)動(dòng)作定義了一個(gè)最小的工作單元。 時(shí)間:2017年05月16日星期二說(shuō)明:本文部分內(nèi)容均來(lái)自慕課網(wǎng)。@慕課網(wǎng):http://www.imooc.com教學(xué)示例源碼:無(wú)個(gè)人學(xué)習(xí)源碼:https://github.com/zccod...
摘要:返回的是轉(zhuǎn)換為字符串后的值。默認(rèn)行為禁止在一個(gè)中如果沒(méi)有定義域,那么將會(huì)默認(rèn)分配一個(gè)域。通過(guò)在中設(shè)置這個(gè)字段可以阻止生成獲得。我們也能設(shè)置其它的安全等級(jí)如表示如果秒內(nèi)寫操作沒(méi)有完成,將會(huì)超時(shí)。在,和方法只檢查頂級(jí)的的選項(xiàng)設(shè)置。 原文出處 名詞解釋 Schema: 一種以文件形式存儲(chǔ)的數(shù)據(jù)庫(kù)模型骨架,不具備數(shù)據(jù)庫(kù)的操作能力 Model: 由Schema編譯而成的假想(fancy)構(gòu)造器...
摘要:你可以用此模板作為你應(yīng)用程序的起點(diǎn)。上一篇之模板的學(xué)習(xí)之路主題布局配置下一篇之模板的學(xué)習(xí)之路前端自動(dòng)化工具 前面我們將 Metronic 的結(jié)構(gòu)和源碼大致瀏覽了一遍,Metronic 整個(gè)文件包有三百多兆,在實(shí)際項(xiàng)目中,我們肯定用不到所有文件,這時(shí),我們需要做一些自定義。 自定義和擴(kuò)展 CSS 部分 要重載 Metronic 主題的 CSS 樣式,我們可以定制 ../assets/la...
閱讀 3727·2021-11-22 11:59
閱讀 1008·2021-09-27 13:36
閱讀 3737·2021-09-24 09:47
閱讀 2348·2021-09-01 11:39
閱讀 1039·2021-08-31 09:37
閱讀 2391·2021-08-05 10:01
閱讀 1763·2019-08-30 15:55
閱讀 754·2019-08-30 15:54