WebService学习总结七 WebService 对于其他的数据类型
客户端参考wsdl文档向服务器发送soap消息(http+xml),服务器依据wsdl进行解析,使用soap消息响应客户端,客户端再根据wsdl文档解析。完成一次交互。 如果使用jdk编写服务端代码,对于返回map的数据类型,无法发布。此时应该使用cxf进行编写服务端代码,支持 int String boolean javabean list set map等数据类型。 客户端对于返回map数据的处理: //m3方法返回map,解析方式比较特殊 服务端代码: package com.dt.ws; /* * jdk方式发布的webService不支持返回map,cxf支持 */ import java.util.List; import java.util.Map; import javax.jws.WebService; @WebService public interface DtService { public boolean m1(int a1,boolean a2,String a3,List a4,Map a5); public List m2(String a1); public Map m3(String a1); } package com.dt.ws; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.jws.WebService; @WebService public class DtServiceImpl implements DtService { @Override public boolean m1(int a1,Map a5) { System.out.println("Server:m1:"+a3); return false; } @Override public List m2(String a1) { System.out.println("Server:m2:"+a1); List l=new ArrayList(); l.add("a"); l.add("b"); return l; } @Override public Map m3(String a1) { System.out.println("Server:m3:"+a1); Map m=new HashMap(); m.put("a","a");m.put("b","b"); return m; } } package com.dt.ws; import javax.xml.ws.Endpoint; public class Test { public static void main(String[] args) { Endpoint.publish("http://192.168.1.101:8899/WS/DtService",new DtServiceImpl()); System.out.println("发布成功"); } } 客户端代码: 使用wsimport 生成: /ws_dataType_client/src/com/dt/ws/DtService.java package com.dt.ws; import java.util.List; import com.dt.ws.M3Response.Return; import com.dt.ws.M3Response.Return.Entry; /* * jdk方式发布的webService不支持返回map,cxf支持 */ public class Test { public static void main(String[] args) { DtServiceImplService factory=new DtServiceImplService(); DtService ds=factory.getDtServiceImplPort(); System.out.println(ds.m1(0,true,"a",null,null));; System.out.println(ds.m2("a")); //m3方法返回map,解析方式比较特殊 Return r=ds.m3("a"); //返回map时候是个Return,先得到其list,List<Entry> l=r.getEntry(); for(Entry e:l){ System.out.println(e.key+","+e.value); } } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |