先決條件:基於CXF的服務接收到數據的請求/響應,這違反了XSD限制。如何在CXF發生解組錯誤的情況下檢索字段名稱?
實際行爲: 在這種情況下CXF返回故障中包含的消息:
CVC-最大長度-有效:值 'string_length_violated_value' 與長度= '28' 是不小面有效的相對於最大長度「13」型「XSDStringTypeWithLengthRestriction」
目標: 回報故障消費者與含有無效數據字段的名稱。 F.E.像這樣:
來自提供者的響應包含無效數據。字段'field_name'的值'string_length_violated_value'相對於maxLength'13'不是facelet-valid。
我想知道如果這是可能的,如果是這樣,那麼如何確定(從哪裏檢索)這個字段名稱?
我剛剛遇到類似的問題,我得到一個「無效值」解組錯誤,但沒有任何有關元素的提示,除了「違規值」。由於我在XML消息中有數百個元素,就像在大海撈針一樣。我對這個階段的解決方法是爲每個元素提供獨特的(僞造)值,並且由於值(但不是元素)被報告,它指向了正確的元素。雖然這很乏味而且不太聰明。一旦我有一點時間,我會嘗試'JAXB ValidationEventHandler'技術。 – Withheld 2013-10-02 17:29:45
嗨丹尼爾,很多時間過去了,所以我不記得詳細,對不起。但是我可以說 - 對我來說'ValidationEventHandler'不起作用,因爲我們使用的cxf版本忽略了這個。 這是個壞消息,但也有好處 - 我已經通過挖掘封裝對象設法從cxf故障中獲得有關「座標」(行和列號)的數據 - 這是我們的解決方案。 – Milkywayfarer 2013-10-02 21:14:25