在cxf中使用配置避免增长字段致使客户端必须更新的问题

在cxf中使用配置避免增长字段致使客户端必须更新的问题

http://www.iflym.com/index.php/code/201307310001.htmlphp

在cxf中使用配置避免增长字段致使客户端必须更新的问题

2013/07/31 11:00:19 1 Comment

在使用cxf实现webservice时,常常碰到的问题就是若是在服务端,修改了一个接口的签名实现,如增长一个字段,或者删除一个字段。在这种状况下,在默认的配置中,就会报如下的错误信息:html

1
org.apache.cxf.interceptor.Fault: Unmarshalling Error: unexpected element . Expected elements are

这种错误即客户端使用的传输对象与服务端接收的参数的字段不匹配。但若是,每次修改服务端的实现,都须要更新客户端时,就会出现一些问题,如在某些状况下,客户端的更新是不可能的事(如不在本身掌握以内,或者服务不能随便更新,或者其它计划时)。java

若是避免这种问题,其实也很简单,就是禁用cxf中的字段信息验证,若是禁用掉此验证,就再也不会对相应的字段信息进行验证,同时没有的字段也会自动的忽略。整个解决只须要增长如下的一行配置便可,在cxf.xml(spring集成文件)中增长如下配置项:web

1
2
3
< cxf:properties >
    < entry key = "set-jaxb-validation-event-handler" value = "false" />
</ cxf:properties >

这样,即会禁用掉全部cxf的数据验证,在大多数状况下,这能够知足咱们的要求(除非你有其它和cxf集成的数据验证要求)。spring

相关文章
相关标签/搜索