java WebService调用方式
来源:互联网 发布:怎么运行java文件 编辑:程序博客网 时间:2024/05/22 04:03
webService调用方式有多种。jjdk 调用方式,axis2 调用方式等大类。
1. webservice说明
参照天气:http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?op=getSupportCity 可以看到,webService有三种请求方式(这个和webService定义的wsdl定义有关)。
get,post,soap。http协议和soap协议。
2.jdk调用(传统大类)
执行命令:wsimport -keep url(url为wsdl文件的路径)生成客户端代码。
注: 可能会报错,则应该把:<s:element ref="s:schema"/><s:any/>这段wsdl改成 <s:any minOccurs="2" maxOccurs="2"/>。
代码生成后:参照一下代码(但是我测试过程中:返回如果是复杂对象不太好解析)--- 改方法我通过本地用jdk发布webservice测试成功,
//创建一个用于产生WebServiceImpl实例的工厂,WebServiceImplService类是wsimport工具生成的14 WebServiceImplService factory = new WebServiceImplService();15 //通过工厂生成一个WebServiceImpl实例,WebServiceImpl是wsimport工具生成的16 WebServiceImpl wsImpl = factory.getWebServiceImplPort();17 //调用WebService的sayHello方法18 String resResult = wsImpl.sayHello("孤傲苍狼");19 System.out.println("调用WebService的sayHello方法返回的结果是:"+resResult);
备注:发布时访问地址必须是?wsdl后缀,否则是404.
3.axis2调用
这一类主要讲通过wsdl2java生成代码后,再进行操作的方式。
a. 执行命令:wsdl2java -uri http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl -p com.water -s -o E: 这个是天气的调用。
获得到WeatherWebServiceStub.java类
b. 获取支持的地区,先创建对应的实体Zone.
public class Zone {String ID;String Zone;String ZoneID;String Area;String AreaCode;然后执行以下代码:
WeatherWebServiceStub serviceStub = new WeatherWebServiceStub();com.water.WeatherWebServiceStub.GetSupportDataSet getSupportDataSet = new GetSupportDataSet();GetSupportDataSetResult_type0 d = serviceStub.getSupportDataSet(getSupportDataSet).getGetSupportDataSetResult();System.out.println(d.getSchema().toString());OMElement element = d.getExtraElement();Iterator iterator = element.getChildElements(); Iterator innerItr; List<String> list = new ArrayList<String>(); OMElement result = null; while (iterator.hasNext()) { result = (OMElement) iterator.next(); //获取内容。内容比较深,具体看返回进行判断。 innerItr = result.getChildElements(); System.out.println(((OMElement)innerItr.next()).getLocalName()); //循环解析 while (innerItr.hasNext()) { Zone dt = (Zone) BeanUtil.processObject((OMElement)innerItr.next(), Zone.class, null, true, new DefaultObjectSupplier(), null); System.out.println(dt.toString()); } }
4. cxf调用(参照:http://blog.csdn.net/posonrick/article/details/45574663)
- java WebService调用方式
- java 调用 C# WebService axis2 命令行方式
- java调用webservice几种方式
- java RPC方式调用axis2 webservice
- java调用webservice的四种方式
- java调用webservice的四种方式
- java调用webservice的四种方式
- 关于java调用webservice的方式学习
- java调用webservice的四种方式
- Java调用WebService的几种方式
- java中webservice生成/调用方式小结
- java用axis方式调用webservice接口
- 【webservice】Java调用WebService
- Java WebService 简单实例 方式二(axis1直接调用方式)
- Java WebService 简单实例 方式三(axis1接口调用方式)
- webservice客户端调用方式
- RPC方式调用WebService
- Webservice 调用方式整理
- 关于eclipse 中Spket 1.6.23 不提示Jquery的原因
- Settings
- Google Chrome 快捷键大全
- new和malloc以及delete和free的区别
- 1100pat
- java WebService调用方式
- 【noip2015】子串
- 机器学习备忘录(持续记录)
- Linux学习 [2] vi编辑器 gcc工具链 make和Makefile gdb调试工具
- #android#刚接触android编程遇到的几个问题
- 从酷铺商贸新零售计划入手,来分析海航怎么样
- 模板整理: 图论---tarjan缩点/桥/割点
- 大数据解读中国高铁
- 使用PrintWriter和BufferedReader完成文件拷贝工作