您好,登錄后才能下訂單哦!
近期,在一個自動化運維平臺中,通過前臺頁面修改監控采數頻率,結果平臺監控不再刷新,觀察后臺日志,發現
一直刷數據類型轉換異常的錯誤。
開發語言:JAVA
JDK版本:java version "1.8.0_211"
MongoDB版本:3.2.16
后臺日志報錯如下:
根據報錯提示的java類定位到具體的報錯代碼如下:
由此,可知引起異常的代碼是:
long intervalDynamic = conf.getLong("interval_dynamic");
觀察MongoDB內對應的數據:
到此,問題可能出在:程序在對mongodb數據庫里的interval_dynamic從Object轉換成Long時出現數據類型轉換異常。
經溝通監控平臺的初始化是后臺腳本初始化,mongdb初始化的時候是數字類型,監控取出的時候是bson,按key取值為
Object類型,不能直接強制轉換成Long,可能跟JDK版本有關。
經調試,將數據轉換做如下調整,程序恢復正常運行:
總結:JAVA讀取MongoDB數據為二進制的Bson,JAVA按字段獲取到的數據為Object數據,在轉換為Long之前,先過
渡轉換為String類型,再使用Long.valueOf(String)方法將String數據轉換為Long類型。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。