隨筆-57  評論-117  文章-1  trackbacks-0

          在使用cxf實現webservice時,經常碰到的問題就是如果在服務端,修改了一個接口的簽名實現,如增加一個字段,或者刪除一個字段。在這種情況下,在默認的配置中,就會報以下的錯誤信息:

          org.apache.cxf.interceptor.Fault: Unmarshalling Error: unexpected element . Expected elements are
          這種錯誤即客戶端使用的傳輸對象與服務端接收的參數的字段不匹配。但如果,每次修改服務端的實現,都需要更新客戶端時,就會出現一些問題,如在某些情況下,客戶端的更新是不可能的事(如不在自己掌握之內,或者服務不能隨便更新,或者其它計劃時)。

          如果避免這種問題,其實也很簡單,就是禁用cxf中的字段信息驗證,如果禁用掉此驗證,就不再會對相應的字段信息進行驗證,同時沒有的字段也會自動的忽略。整個解決只需要增加以下的一行配置即可,在cxf.xml(spring集成文件)中增加以下配置項:

          <cxf:properties>
             <entry key="set-jaxb-validation-event-handler" value="false"/>
          </cxf:properties>
          這樣,即會禁用掉所有cxf的數據驗證,在大多數情況下,這可以滿足我們的要求(除非你有其它和cxf集成的數據驗證要求)。

          轉載請標明出處:i flym
          本文地址:http://www.iflym.com/index.php/code/201307310001.html



          作者:hoojo
          出處:
          blog:http://blog.csdn.net/IBM_hoojo
                   http://hoojo.cnblogs.com
          本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。


          版權所有,轉載請注明出處 本文出自:
          分享道版權所有,歡迎轉載,轉載請注明出處,謝謝
          posted on 2013-11-12 13:45 hoojo 閱讀(949) 評論(0)  編輯  收藏 所屬分類: JavaEERIA 【富互聯網程序】WebService
          主站蜘蛛池模板: 香港 | 合肥市| 湖北省| 长泰县| 西丰县| 夹江县| 南漳县| 建瓯市| 曲靖市| 西藏| 芜湖市| 十堰市| 乐昌市| 旌德县| 绥宁县| 灵川县| 元朗区| 昌乐县| 义马市| 奉化市| 日喀则市| 霞浦县| 武冈市| 巴林右旗| 延川县| 宜春市| 肃宁县| 平阳县| 墨竹工卡县| 浦东新区| 洛隆县| 吴桥县| 通海县| 灯塔市| 华坪县| 金华市| 泗水县| 毕节市| 西宁市| 稷山县| 安泽县|