Cxf 客户端的 Map 适配器
当 Cxf Endpoint 的参数或者返回值为 Map 类型时,无法直接使用 java.utl.Map 类型的数据,需要在客户端进行数据转换。
此外,本适配器无法配置在 bindings 文件中,因此需要调用 client 时主动调用进行数据转换。
如调用 bropen.grails.plugins.cxf.adapter.MapAdapter 中的示例方法 testMap,需要使用下面的 fromMap 转换参数、并使用 toMap 转换返回值。
将 java.util.Map 对象转换为 Web 服务需要的 Map 对象
示例:xyClient.testMap(MapAdapter.fromMap([x : 1 , y : 2], x.y.Map, x.y.KeyValue)))
map - 需要提交到服务端的 Map 对象clazzMap - 客户端的 Map 类(通过 wsdl-to-java 自动生成的),如 foobar.cxf.client.Map、foobar.cxf.client.TestMap.MapclazzEntry - 客户端的 Map.Entry 类(通过 wsdl-to-java 自动生成的),如 foobar.cxf.client.KeyValue、foobar.cxf.client.TestMap.Map.Entry将 Web 服务返回的 Map 对象,转换为 java.util.Map 对象
示例,将服务端 testMap 返回的数据转换为 Map 对象:MapAdapter.toMap(xyClient.testMap(..))
map - 服务返回的 Map 对象