3.Web Service 处理非默认类型的机制

来源:互联网 发布:淘宝网店卖什么最赚钱 编辑:程序博客网 时间:2024/04/29 05:40

在CXF开发中,如果是CXF无法处理的类型,就需要程序员自己搞定。

思路:自己搞一个转换器,该转换器负责把CXF搞不定的类型,转换为CXF搞的定的类型。

①使用@XmlJavaTypeAdapter修士CXF搞不定的类型。

   使用该Annotation时,通过Value属性指定一个类型转换器 //@XmlJavaTypeAdapter(FKXmlAdapter.class) Map<String,Cat>getAllCats();

②实现自己的转换器

   实现转换器时,需要开发一个CXF搞得定的类型。

// FKXmlAdapter.java 需要继承XmlAdapter<StringCat, Map<String, Cat>>-----StringCat是是转换后Cxf能够支持的对象。Map<String,Cat>是需要转换的对象。

@Override
public Map<String, Cat> unmarshal(StringCat v) throws Exception {
Map<String,Cat>result = new HashMap<String,Cat>();
for(Entry entry : v.getEntries()){
result.put(entry.getKey(), entry.getValue());
}
return result;
}


@Override
public StringCat marshal(Map<String, Cat> v) throws Exception {
StringCat sc = new StringCat();
for(String key : v.keySet()){
sc.getEntries();
}
return sc;
}