加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

CXF处理形参,返回值类型

发布时间:2020-12-17 00:55:38 所属栏目:安全 来源:网络整理
导读:CXF处理形参,返回值类型: 1:当形参,返回值的类型是String,基本数据类型时,CXF可以处理。 2:当形参,返回值类型是JavaBean式的复合类,List集合,数组等时,CXF可以处理 3:当形参返回值是Map,非JavaBean式的复合类,CXF自身不会按原来的类型返回,会

CXF处理形参,返回值类型:

1:当形参,返回值的类型是String,基本数据类型时,CXF可以处理。

2:当形参,返回值类型是JavaBean式的复合类,List集合,数组等时,CXF可以处理

3:当形参返回值是Map,非JavaBean式的复合类,CXF自身不会按原来的类型返回,会经过转换来处理。

? ??@XmlJavaTypeAdapter来注释到不能处理的类型

例如:

1:

@WebService
public?interface?TestWebservice?{

	public?abstract?void?say();
	
	public?String?login(String?userName,?String?password);
????????//@XmlJavaTypeAdapter来注释到不能处理的类型?AdapterListMap类为转换处理的类
	public?@XmlJavaTypeAdapter(AdapterListMap.class)?List<Map<String,?Object>>?selectProjectInfo(String?param);
	
}

2:

import?java.util.ArrayList;
import?java.util.HashMap;
import?java.util.List;
import?java.util.Map;

import?javax.xml.bind.annotation.adapters.XmlAdapter;

import?dj.log.controller.MapEntry.Entry;
//需要继承XmlAdapter类
public?class?AdapterListMap?extends?XmlAdapter<ListMap,?List<Map<String,?Object>>>{

	@Override
	public?List<Map<String,?Object>>?unmarshal(ListMap?v)?throws?Exception?{
		
		List<Map<String,?Object>>?list=new?ArrayList<Map<String,Object>>();
		for(MapEntry?mapEntry:v.getList()){
			Map<String,?Object>?map=new?HashMap<String,?Object>();
			for(Entry?entry:mapEntry.getEntries()){
				map.put(entry.getKey(),?entry.getValue());
				
			}
			list.add(map);
					
			
		}
		return?list;
	}

	@Override
	public?ListMap?marshal(List<Map<String,?Object>>?v)?throws?Exception?{
		ListMap?listMap=new?ListMap();
		for(Map<String,?Object>?map:v){
			MapEntry?mapEntry=new?MapEntry();
			for(String?key:map.keySet()){
				Entry?entry=new?Entry();
				entry.setKey(key);
				entry.setValue(map.get("key"));
				mapEntry.getEntries().add(entry);
			}
			
			
		}
		
		
		return?listMap;
	}

}

3:其他相关的类根据具体的逻辑来处理

package?dj.log.controller;

import?java.util.List;

public?class?MapEntry?{
	
	private?List<Entry>?entries;

	public?List<Entry>?getEntries()?{
		return?entries;
	}

	public?void?setEntries(List<Entry>?entries)?{
		this.entries?=?entries;
	}

	public?static?class?Entry?{
		private?String?key;

		private?Object?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;
		}

	}

}
package?dj.log.controller;

import?java.util.ArrayList;
import?java.util.HashMap;
import?java.util.List;
import?java.util.Map;

import?dj.log.controller.MapEntry.Entry;

public?class?ListMap?{

	private?List<MapEntry>?list;

	public?List<MapEntry>?getList()?{
		return?list;
	}

	public?void?setList(List<MapEntry>?list)?{
		this.list?=?list;
	}

	
	public?List<Map<String,?entry.getValue());
				
			}
			list.add(map);
					
			
		}
		return?list;
	}

	public?ListMap?marshal(List<Map<String,?Object>?map:v){
			MapEntry?mapEntry=new?MapEntry();
			for(String?key:map.keySet()){
				Entry?entry=new?Entry();
				entry.setKey(key);
				entry.setValue(map.get(key));
				mapEntry.getEntries().add(entry);
			}
			
			
		}
			
		return?listMap;
	}
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读