首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > XML SOAP >

webservice怎么定义一个地图,

2013-01-05 
webservice如何定义一个map,在线等,急我用的是xfire开发的,用java做了一个简单的测试程序先定义了一个接口

webservice如何定义一个map,在线等,急
我用的是xfire开发的,用java做了一个简单的测试程序

先定义了一个接口,需要传入一个map
public interface MapService {
public String getMap(Map<String,String> map);
}


然后定义了一个实现类

public class MapServiceImp implements MapService {

public String getMap(Map<String,String> map) {

String str="";

Iterator it = map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry entry = (Map.Entry)it.next();
Object key = entry.getKey();
Object value = entry.getValue();  
str+="(key=" + key.toString() + ", value=" + value.toString()+"),";

}

str="["+str.substring(0,str.length()-1)+"]";

return str;

}
}


然后在aegis.xml里面就不知道怎么定义了
是这样定义的吗?我调试了好像不正确

<?xml version="1.0" encoding="UTF-8"?>   
<mappings>   
  <mapping >   
    
  <method name="getMap">   
  <parameter index="0" keyType="java.lang.String" componentType="java.lang.String"/>  
  </method>   
    
  </mapping >   
</mappings>   

jdk是1.6的
[解决办法]
webservice是不能直接传输Map的,需要采用“曲线折中”的办法,这里的Map我觉得可以转换为一个JavaBean的数组,每个JavaBean里面一个存着键和值,JavaBean实现序列化接口就可以在webservice通过SOAP传输
接受方接收到的就是一个JavaBean的数组,如果是java调用,可以写个方法重新组装为Map

热点排行