2019独角兽企业重金招聘Python工程师标准>>>

遇到cxf自己不能处理的数据,如cxf不能自己处理Map对象,遇到这种情况需要开发工程师自己写代码处理
1.@XmlJavaTypeAdapter:该注解修饰不能处理的类型,该注解jDK自带的,通过value指定一个转换器://@XmlJavaTypeAdapter:该注解jDK自带的,通过value指定一个转换器@XmlJavaTypeAdapter(value=FKXMLAdapter.class)Map<String, Cat> getAllCats();FKXMLAdapter类是我们自己定义的.Map<String, Cat>是cxf不能处理的类型.2.FKXMLAdapter的代码如下FKXMLAdapter继承XmlAdapter,用StringCat模拟Map<String, Cat>/*** @author xp* @Title: FKXMLAdapter.java* @Package com.xp.cn.ws.adapter* @Description: TODO* @date 2016年5月1日 下午5:56:56* @version V1.0  */
package com.xp.cn.ws.adapter;import java.util.HashMap;
import java.util.List;
import java.util.Map;import javax.xml.bind.annotation.adapters.XmlAdapter;import com.xp.cn.bean.Cat;
import com.xp.cn.bean.StringCat;
import com.xp.cn.bean.StringCat.Entry;/*** @author xp* @ClassName: FKXMLAdapter* @Description: TODO* @date 2016年5月1日 下午5:56:56* ValueType:能解决的类型  自定义为StringCat* BoundType:不能解决的类型  Map<String, Cat>* 实现集成的方法达到StringCat,Map<String, Cat>之间的相互转换*/
public class FKXMLAdapter extends XmlAdapter<StringCat, Map<String, Cat>>
{@Overridepublic Map<String, Cat> unmarshal(StringCat v) throws Exception {Map<String, Cat> map = new HashMap<String, Cat>();for (Entry entry : v.getEntries()) {System.out.println(entry.getKey());map.put(entry.getKey(), entry.getValue());}return map;}@Overridepublic StringCat marshal(Map<String, Cat> v) throws Exception {StringCat stringcat = new StringCat();for (String key : v.keySet()) {stringcat.getEntries().add(new Entry("", v.get(key)));}return stringcat;}}3.StringCat的代码如下:/*** @author xp* @Title: StringCat.java* @Package com.xp.cn.ws.bean* @Description: TODO* @date 2016年5月1日 下午5:59:48* @version V1.0  */
package com.xp.cn.bean;import java.util.ArrayList;
import java.util.List;/*** @author xp* @ClassName: StringCat* @Description: TODO* @date 2016年5月1日 下午5:59:48* Entry封装了Map信息*/public class StringCat
{public static class Entry{private String key;private Cat value;public Entry() {}public Entry(String key, Cat value) {this.key = key;this.value = value;}public String getKey() {return key;}public void setKey(String key) {this.key = key;}public Cat getValue() {return value;}public void setValue(Cat value) {this.value = value;}}private List<Entry> entries = new ArrayList<Entry>();public List<Entry> getEntries() {return entries;}public void setEntries(List<Entry> entries) {this.entries = entries;}}

转载于:https://my.oschina.net/u/2253438/blog/668741

WebService处理Map相关推荐

  1. 源码解读:KubeVela 是如何将 appfile 转换为 K8s 特定资源对象的

    作者 | 樊大勇 KubeVela 是一个简单易用又高度可扩展的云原生应用管理引擎,是基于 Kubernetes 及阿里云与微软云共同发布的云原生应用开发模型 OAM 构建. KubeVela 基于 ...

  2. webservice返回值为Map类型的处理方法

    在写一个webservice的时候,方法的返回值是一个复杂类型,处理方法是写一个结果类(Javabean)作为返回值.想着webservice方法返回值为Map的没写过,然后就试着写了一个简单的Dem ...

  3. 利用soapUI5.2.1测试含Map参数的webservice接口

    之前不知道怎么测试含map参数的webservice接口,后来网上查了,利用soapUI是能测试此类接口.在使用后发现,在调用接口的时候并不会报错,但是获取到的值为空.一开始以为测试的时候传了一个si ...

  4. Spring整合CXF,发布RSETful 风格WebService

    这篇文章是承接之前CXF整合Spring的这个项目示例的延伸,所以有很大一部分都是一样的.关于发布CXF WebServer和Spring整合CXF这里就不再多加赘述了.如果你对Spring整合CXF ...

  5. CXF做的webservice简单例子

    CXF介绍:http://baike.baidu.com/view/2742297.htm CXF下载:http://cxf.apache.org/download.html 1:建一个接口 HotT ...

  6. android wsdl封装,在Android中调用C#写的WebService(附源代码)

    由于项目中要使用Android调用C#写的WebService,于是便有了这篇文章.在学习的过程中,发现在C#中直接调用WebService方便得多,直接添加一个引用,便可以直接使用将WebServi ...

  7. 转 ofbiz的webservice接口提供(2)-数据类型的局限性

    ofbiz4 对于webservice的支持实在是不咋地,在官方的文档中,SOAP只是支持基础类型的数据的传入传出,这些基础的数据类型我们可以参照 org.ofbiz.service.ModelPar ...

  8. Android呼叫开发系列WebService

    我在学习Android第一个问题是在发展进程中遇到Androidclient究竟是怎么用server与数据库交互它?问题是,我有初步接触Android这困扰了我一个非常大的问题.天直到几年前,我突然想 ...

  9. CXF发布restful WebService的入门例子(服务器端)

    研究了两天CXF对restful的支持.    现在,想实现一个以  http://localhost:9999/roomservice 为入口,  http://localhost:9999/roo ...

最新文章

  1. C# 使用HttpWebRequest提交ASP.NET表单并保持Session和Cookie
  2. OpenStack计算节点AMQP5672报错
  3. 快速优雅的为React组件生成文档
  4. dosbox更新加载的文件夹
  5. Eigen与Matlab语法及语义辞典
  6. python乐观锁和悲观锁
  7. python怎么获取时间_Python:如何从datetime.timedelta对象中获取时间?
  8. 差分进化算法_基于差分进化的水泥烧成系统动态优化算法
  9. CANN 5.0硬核技术抢先看
  10. 关于LINUX输入法候选框光标跟随的代码的一个网页
  11. 最适合程序猿的笔记软件
  12. 阿里巴巴-码出高效+阿里巴巴Java开发手册(华山版)PDF下载
  13. numpy的choose 函数实现条件筛选
  14. 如何对iOS设备进行性能测试
  15. git name consists only of disallowed characters:
  16. 国际标准组织 ISO 3166 的国家或地区代码
  17. Elasticsearch集成(二)
  18. 1、Python学习笔记第一课:python介绍
  19. Kaggle竞赛 —— 泰坦尼克号(Titanic)
  20. ArcGIS地质图矢量化技巧概要

热门文章

  1. matlab菜单的中文意思,matlab菜单制作
  2. 启动后显示不了数据_90后都买不起房?统计数据显示:90后成了城市租房主力!...
  3. 纳税人基本信息与服务器端基本信息不符,网上报税对浏览器有什么要求吗
  4. 2047.句子中的有效单词数
  5. 2013.检测正方形-LeetCode
  6. 读取html文件转换字符串,读取HTML文件,生成HTML字符串
  7. linux根目录数量限制,windows,linux文件夹下文件上限最大个数
  8. CSS动画效果构成分析
  9. Eclipse中自动创建set、get方法
  10. Eclipse 自动清理未使用 Import