2013-01-14 53 views
1

我使用cxf的jaxb來解組xml請求。捕獲約束綁定對象的jaxb unmarshal異常

我正在尋找一種方法來驗證輸入xml請求,我讀過以下兩篇有關驗證的超級文章,但它們並不完全是我所需要的。

http://blog.bdoughan.com/2010/11/validate-jaxb-object-model-with-xml.html

http://blog.bdoughan.com/2010/12/jaxb-and-marshalunmarshal-schema.html

事實上,而不是停止馬上全解組過程中和響應給出了這個異常的消息後,我需要解組過程的繼續運行,並能夠例外鏈接與xml元素未經過驗證的對象一起使用。通過這種方式,應用程序仍然可以在除此之外的其他未組裝的對象上執行下一個作業,最後在返回的xml響應中,我可以顯示此特定對象的異常消息,以及其他物體。

這可能嗎?

任何幫助非常感謝,

回答

0

您可以在Unmarshaller設置的ValidationEventCollector一個實例。它將在解組過程中存儲所有的實例ValidationEvent。在unmarshal操作之後,如果它已收集到任何事件,則可以選擇拋出Exception

順便說一句,我很高興聽到你喜歡這些帖子。

+0

感謝您的回覆和您的超級文章,我會試試看。 –

+0

ValidationEventCollector可以告訴哪個對象它得到異常嗎?例如 ,像下面的xml一樣,可以通過validationEventCollector來告訴第一個人的生日日期格式是不正確的? <人名= 「第一」> fadsfdas <人名= 「第一」> 2012年12月2日