2017-02-15 36 views
0

我有一對夫婦的JAX-RS的端點從GlassFish服務器供應生產Java應用程序,幾個月後,錯誤日誌中突然出現了這樣腐敗在Java應用程序中

javax.servlet.ServletException: 
A MultiException has 1 exceptions. 
They are: 
1. org.json.JSONException: JSONObject["banks"] is not a JSONArray. 
root cause 
A MultiException has 1 exceptions. They are: 
1. org.json.JSONException: JSONObject["banks"] is not a JSONArray. 
root cause 
org.json.JSONException: JSONObject["banks"] is not a JSONArray. 

的問題在於終端被調用與拋出這個錯誤的行無關,就像沒有任何關係。一位同事建議再次啓動生產流程,看看是否能解決這個問題。它做了。

我的困惑是Java字節碼隨着時間的推移而損壞嗎?新版本與舊版本相同。我很困惑。

+0

這可能是任何錯誤的輸入,編程錯誤硬件故障。 – Axel

+0

你需要調試發生了什麼,並停止假設發生了什麼,有大量的可能性,但沒有任何理由的字節碼隨着時間的推移變得腐敗。 – jgr208

+0

「隨着時間的推移而腐敗?」你到底在問什麼?你的意思是說Java Bytecode本身有變化嗎?它絕對不會。 JVM可能會改變,第三方庫可能會改變併產生新的問題,但像Server FS上的其他文件一樣,Bytecode本身不會改變 – ControlAltDel

回答

0

我在當時的熱度下寫了這個問題,顯然一個也在工作的依賴項的工程師跳過了構建過程並直接部署在服務器上,這在我自己的一端創建了一個非常有趣的問題,這真的不可能調試和沮喪。吸取的教訓是指責字節碼

謝謝你們之前

  1. 字節碼不發生腐敗全部由自己
  2. 檢查所有的依賴。