0
我正在使用Jersey來開發我的REST Web服務。收集所有發生的錯誤/異常,並輸出它們
我試圖實施驗證,並且爲此我使用了與JSR-303 Bean驗證澤西提供的出色集成。
然後我定義一個ExceptionMapper來輸出我想從發生的錯誤。問題在於有時,異常不會發生在Bean驗證的上下文中。
實施例:
客戶端發送一個無效值時的浮子(例如 「ABC」)。傑克遜拋出一個異常,因爲它無法將給定的JSON解析爲浮點值。這是預料之中的。
我可以爲這個異常寫一個ExceptionMapper並輸出給客戶端。 但是,我想要的是收集所有這些不同的異常來自各種來源,並將它們全部輸出。換句話說,我想輸出解析過程中發生的錯誤,並從Bean驗證中輸出相同的響應,而不是單獨的錯誤。
有什麼辦法可以收集所有的異常,並最終輸出它們嗎? 我假設的第一個問題是,在Jackson正確解析請求之前,Bean Validation永遠不會發生。
所以沒有辦法做到這一點? 令人失望。 :/ 客戶端驗證將不得不按照它應該的方式來處理... – miguelcobain
他們是非常不同的東西。從邏輯上講,如果JSON不解析,那麼你如何期望澤西島繼續? – jgm
有道理,但json本身**是**有效的。這只是一個普通的字符串。問題是給定的字符串不是有效的float。 我希望能夠捕獲這個異常,將字段設置爲null,然後繼續進行bean驗證,然後在一個響應中輸出所有錯誤。 我承認,這是一個很大的挑戰。 – miguelcobain