网站大量收购独家精品文档,联系QQ:2885784924

在CXF中用JAXB数据绑定支持Map类型.docx

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
引入在CXF所些的服务端程序,被客户端程序调用时,SOAP中不支持Map(客户端传递Map参数或服务端返回Map数据),否则会如下错误:Marshalling Error: java.util.Map is not known to this context。原因CXF中不支持Map解决方案通过适配器将数组转换成HashMap的方式支持。代码实现1、? 定义Map转换器(code)import java.util.ArrayList;import java.util.List;import java.util.Map;?import javax.xml.bind.annotation.XmlAccessType;import javax.xml.bind.annotation.XmlAccessorType;import javax.xml.bind.annotation.XmlType;?/** * @authorTEANA E-mail: mmz06@163.com * @version创建时间:2011-7-1 下午11:21:49 * @DO Map转换器 */@XmlType(name = MapConvertor) @XmlAccessorType(XmlAccessType.FIELD) publicclass MapConvertor{private ListMapEntry entries = new ArrayListMapEntry();?publicvoid addEntry(MapEntry entry){entries.add(entry);}?publicstaticclass MapEntry{public MapEntry(){super();}?public MapEntry(Map.EntryString, Object entry){super();this.key = entry.getKey();this.value = entry.getValue();}?public MapEntry(String key, Object value){super();this.key = key;this.value = value;}?private String key;private Object value;?public String getKey(){returnkey;}?publicvoid setKey(String key){this.key = key;}?public Object getValue(){returnvalue;}?publicvoid setValue(Object value){this.value = value;}}?public ListMapEntry getEntries(){returnentries;}}??2、? 定义Map适配器(code)import java.util.HashMap;import java.util.Map;?import javax.xml.bind.annotation.adapters.XmlAdapter;?/** * @authorTEANA E-mail: mmz06@163.com * @version创建时间:2011-7-1 下午11:25:11 * @DO Map适配器 */?publicclass MapAdapter extends XmlAdapterMapConvertor, MapString, Object{?@Overridepublic MapConvertor marshal(MapString, Object map) throws Exception{MapConvertor convertor = new MapConvertor();for (Map.EntryString, Object entry : map.entrySet()){MapConvertor.MapEntry e = new MapConvertor.MapEntry(entry);convertor.addEntry(e);}return convertor;}?@Overridepublic MapString, Object unmarshal(MapConvertor map) throws Exception{MapString, Object result = new HashMapString, Object();for (MapConvertor.MapEntry e : map.getEntries()){result.put(e.getKey(),

文档评论(0)

ktj823 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档