在使用cxf實現(xiàn)webservice時,經(jīng)常碰到的問題就是如果在服務端,修改了一個接口的簽名實現(xiàn),如增加一個字段,或者刪除一個字段。在這種情況下,在默認的配置中,就會報以下的錯誤信息:
org.apache.cxf.interceptor.Fault: Unmarshalling Error: unexpected element . Expected elements are
這種錯誤即客戶端使用的傳輸對象與服務端接收的參數(shù)的字段不匹配。但如果,每次修改服務端的實現(xiàn),都需要更新客戶端時,就會出現(xiàn)一些問題,如在某些情況下,客戶端的更新是不可能的事(如不在自己掌握之內(nèi),或者服務不能隨便更新,或者其它計劃時)。
如果避免這種問題,其實也很簡單,就是禁用cxf中的字段信息驗證,如果禁用掉此驗證,就不再會對相應的字段信息進行驗證,同時沒有的字段也會自動的忽略。整個解決只需要增加以下的一行配置即可,在cxf.xml(spring集成文件)中增加以下配置項:
<cxf:properties>
<entry key="set-jaxb-validation-event-handler" value="false"/>
</cxf:properties>
這樣,即會禁用掉所有cxf的數(shù)據(jù)驗證,在大多數(shù)情況下,這可以滿足我們的要求(除非你有其它和cxf集成的數(shù)據(jù)驗證要求)。
轉(zhuǎn)載請標明出處:i flym
本文地址:http://www.iflym.com/index.php/code/201307310001.html
作者:hoojo
出處:
blog:http://blog.csdn.net/IBM_hoojo
http://hoojo.cnblogs.com
本文版權(quán)歸作者和博客園共有,歡迎轉(zhuǎn)載,但未經(jīng)作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權(quán)利。
版權(quán)所有,轉(zhuǎn)載請注明出處 本文出自:
