文档章节

WebService处理Map

xpttxsok
 xpttxsok
发布于 2016/05/02 14:23
字数 440
阅读 67
收藏 2

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

遇到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>> 
{

	@Override
	public 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;
	}

	@Override
	public 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;
	}
	
}


© 著作权归作者所有

xpttxsok
粉丝 7
博文 187
码字总数 109478
作品 0
徐汇
程序员
私信 提问
加载中

评论(1)

xpttxsok
xpttxsok 博主
噢噢
如何处理 WebService 中的 Map 对象?

最近,我们讨论了关于 WebService 的相关问题。目前在 Smart 中,可发布两种类型的 WebService,它们是:SOAP 服务 与 REST 服务,您可以根据需要自由选择。 今天,我要与大家分享的是,在 ...

黄勇
2013/12/08
8.7K
5
webservice 关于map类型参数

最近,我们讨论了关于 WebService 的相关问题。目前在 Smart 中,可发布两种类型的 WebService,它们是:SOAP 服务 与 REST 服务,您可以根据需要自由选择。 今天,我要与大家分享的是,在 ...

李永china
2016/04/27
242
0
spring,cxf,restful发布webservice传递List,Map,List

上一篇文章中概述了怎么在Javaweb中发布webservice,这篇文章讲解怎么传递复杂的对象 所用的jar包如下 ![在此输入图片描述]1当服务器返回的是List或者是Map时,一定要将其封装在一个类中, ...

那位先生
2014/07/27
10.2K
0
dubbo-2.5.4-SNAPSHOT 小bug处理。

dubbo-2.5.4-SNAPSHOT,使用Servlet Bridge Server并指定 contextpath 时,发布的webservice,url路径错误, dubbo无法访问问题处理。 问题原因: com.alibaba.dubbo.rpc.protocol.webservic...

linan
2015/10/13
1K
1
webService简单开发步骤

----------------------------服务端---------cxf框架------------------------------------------------ 导入jar包 写一个webservice接口 @WebService public interface WebService01 { } ......

李永china
2016/04/27
139
0

没有更多内容

加载失败,请刷新页面

加载更多

采购单品汇总_华南.xlsx

import pandas as pdimport matplotlib.pyplot as pltimport matplotlib as mp1mp1.rcParams["font.family"] = "STFangsong"# 加载《销售》表数据df1 = pd.read_excel(r"C:\Us......

龙玉滕
今天
5
0
OSChina 周五乱弹 —— 一次四千 要4次还能多给一千

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @这次装个文艺青年吧 :#今日歌曲推荐# 分享金志文的单曲《远走高飞》: 版权又回来了现在听歌得好几个软件 《远走高飞》- 金志文 手机党少年们...

小小编辑
今天
8
0
Spring Cloud Alibaba 实战(十) - Spring Cloud GateWay

> 本文主要内容是:为什么要使用网关,整合Gateway,Gateway核心学习:Route,Predicate,Filter,最后使用Gateway聚合微服务请求 先总结至此的架构 1 网关的价值 不使用网关行嘛? 各个请求直接打在...

JavaEdge
今天
4
0
【CKB.DEV 茶话会】第二期:聊聊 CKB 钱包和 Nervos DAO 全流程

CKB.DEV 茶话会第二期:聊聊 CKB 钱包和 Nervos DAO 全流程 为了鼓励更多优秀的开发者和研究人员参与到 CKB 的开发和生态建设中去,我们希望组织一系列 CKB Developer Seminar(CKB.DEV 茶话...

NervosCommunity
今天
4
0
聊聊rocketmq的HAClient

序 本文主要研究一下rocketmq的HAClient HAClient rocketmq-all-4.6.0-source-release/store/src/main/java/org/apache/rocketmq/store/ha/HAService.java class HAClient extends Serv......

go4it
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部