cxf返回Map
来源:互联网 发布:植物精灵mac百度云 编辑:程序博客网 时间:2024/05/18 02:54
方法一:
类型转换类及适配器类
public class MapAdapter extends XmlAdapter<MapConvertor, Map<String, Object>> { @Override public MapConvertor marshal(Map<String, Object> map) throws Exception { MapConvertor convertor = new MapConvertor(); for (Map.Entry<String, Object> entry : map.entrySet()) { MapConvertor.MapEntry e = new MapConvertor.MapEntry(entry); convertor.addEntry(e); } return convertor; } @Override public Map<String, Object> unmarshal(MapConvertor map) throws Exception { Map<String, Object> result = new HashMap<String, Object>(); for (MapConvertor.MapEntry e : map.getEntries()) { result.put(e.getKey(), e.getValue()); } return result; } }
@XmlType(name = "MapConvertor") @XmlAccessorType(XmlAccessType.FIELD) public class MapConvertor { private List<MapEntry> entries = new ArrayList<MapEntry>(); public void addEntry(MapEntry entry) { entries.add(entry); } public List<MapEntry> getEntries() { return entries; } public static class MapEntry { private String key; private Object value; public MapEntry() { super(); } public MapEntry(Map.Entry<String, Object> entry) { super(); this.key = entry.getKey(); this.value = entry.getValue(); } public MapEntry(String key, Object value) { super(); this.key = key; this.value = value; } public String getKey() { return key; } public void setKey(String key) { this.key = key; } public Object getValue() { return value; } public void setValue(Object value) { this.value = value; } } }
@WebServicepublic interface TestMapService {@XmlJavaTypeAdapter(MapAdapter.class)public Map<String,Object> search() throws SearchException;}
这种方式可以处理常规的类型及对象类型
方式二:
@XmlJavaTypeAdapter(MapAdapter.class)是标明该处需要进行转换,转换过的工具方法是MapAdapter.
该类必须是XmlAdapter<ValueType,BoundType>
其中ValueType是转换后Cxf能够支持的对象。
BoundType是需要转换的对象。
转换类:xstream.jar提供的XStream实现对象和String类型及List<dependency><groupId>com.thoughtworks.xstream</groupId><artifactId>xstream</artifactId><version>1.4.7</version></dependency>
public class MapAdapter extends XmlAdapter<String , Map<String, Object>> {@Overridepublic Map<String, Object> unmarshal(String v) throws Exception {XStream objXStream = new XStream(new DomDriver()); return (Map<String,Object>) objXStream.fromXML(v);}@Overridepublic String marshal(Map<String, Object> v) throws Exception {XStream objXStream = new XStream(); return objXStream.toXML(v);} }
0 0
- cxf返回Map
- CXF学习04---处理MAP等CXF无法自动转换的复合数据类型的形参和返回值
- CXF-05:使用CXF处理返回值的类型为Map、非JavaBean式的复合类
- 使用cxf做Webservice接口时,返回值不能是Map或List等接口
- CXF Map 绑定
- CXF Restful 返回xml
- cxf自定义返回错误信息
- 1.当形参,返回值类型不是JavaBean式的复合类,Map时,CXF无法处理:服务器接口
- 5.当形参,返回值类型不是JavaBean式的复合类,Map时,CXF无法处理:服务端domain
- 6.当形参,返回值类型不是JavaBean式的复合类,Map时,CXF无法处理:服务端发布
- 7.当形参,返回值类型不是JavaBean式的复合类,Map时,CXF无法处理:转换器1
- 8.当形参,返回值类型不是JavaBean式的复合类,Map时,CXF无法处理:转换器2
- Cxf 复杂数据类型(Map)
- Apache CXF解析Map,HashMap
- Cxf 复杂数据类型(Map)
- 2.当形参,返回值类型不是JavaBean式的复合类,Map时,CXF无法处理:服务器实现类
- 3.当形参,返回值类型不是JavaBean式的复合类,Map时,CXF无法处理:服务端业务逻辑层接口
- 4.当形参,返回值类型不是JavaBean式的复合类,Map时,CXF无法处理:服务端业务逻辑层实现类
- pch内常用配置
- 性能测试体系之性能管理能力成熟度
- Android_什么是【回调】
- 安全编码
- shareSdk第三方登录
- cxf返回Map
- ps中图层放到顶层的快捷键是什么?
- 最完美安装amd显卡驱动方法
- KUDU - Cloudera开发的又一个Hadoop系存储系统
- android开发使用的工具类
- c语言各类型转换
- Linux下Vpsmate面板安装和卸载教程
- Javascript 函数参数名妙用(区分函数参数名称)
- 个人笔记