axis2客户端调用免费的webservice服务的实例之二纯手动调用免费天气预报webservice服务
2015-03-12 10:54
549 查看
上一节讲了axis2通过wsdl生成客户端程序并本地调用,这种方法由于得配置环境变量,运行dos命令,之后根据生成的代码来编写输出代码,相比较为复杂一些。这节说一下利用axis2纯手动调用网上免费webservice服务,使用这种方式较为简单一些,只需要在引入axis2包后创建一个java类就可以达到我们的目的了
项目结构如下图:
在引入axis2的jar包后,只需要新建一个testWebService2的java类就够了,下***体看一下这个类中代码
注意:代码中.wsdl的服务地址链接一定要先在浏览器中运行一下,看是否能成功打开,成功后方可用于代码中
运行代码中------以上的代码就会得到结果
有结果可以看出信息是xml格式的,如果想去掉节点,直接输出信息,需要把代码中------下方的代码去注释运行,结果如下
利用axis2纯手动调用网上免费webservice服务的介绍就完事了,较上一节的方式,两种方式各有优缺点,上一节的方式操作复杂点,这节的方式简单点,但是对网络依赖大,所以操作时,一定要在浏览器中运行一下.wsdl的服务地址链接,成功打开后方可用于自己的代码中
在研究axis2访问webservice服务的过程发现一些别的方式,但操作时报出了一些错误,下节将说一下具体的情况
项目结构如下图:
在引入axis2的jar包后,只需要新建一个testWebService2的java类就够了,下***体看一下这个类中代码
注意:代码中.wsdl的服务地址链接一定要先在浏览器中运行一下,看是否能成功打开,成功后方可用于代码中
package com.test.weather; import java.util.Iterator; import org.apache.axiom.om.OMAbstractFactory; import org.apache.axiom.om.OMElement; import org.apache.axiom.om.OMFactory; import org.apache.axiom.om.OMNamespace; import org.apache.axiom.soap.SOAP11Constants; import org.apache.axis2.Constants; import org.apache.axis2.addressing.EndpointReference; import org.apache.axis2.client.Options; import org.apache.axis2.client.ServiceClient; public class testWebService2 { public static void main(String[] args) throws Exception { // axis2利用网上免费webservice服务一个城市的天气情况 ServiceClient sender = new ServiceClient(); Options option = new Options(); option.setSoapVersionURI(SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI); option.setAction("http://WebXml.com.cn/getWeather"); EndpointReference epfs = new EndpointReference( "http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl"); option.setTransportInProtocol(Constants.TRANSPORT_HTTP); option.setTo(epfs); sender.setOptions(option); OMFactory fac = OMAbstractFactory.getOMFactory(); OMNamespace omNs = fac.createOMNamespace("http://WebXml.com.cn/", ""); OMElement data = fac.createOMElement("getWeather", omNs); OMElement theCityCode = fac.createOMElement("theCityCode ", omNs); OMElement theUserID = fac.createOMElement("theUserID ", omNs); theCityCode.setText("北京"); theUserID.setText(""); data.addChild(theCityCode); data.addChild(theUserID); OMElement result = sender.sendReceive(data); //System.out.println(result); //---------------- Iterator in = result.getChildrenWithLocalName("getWeatherResult"); while(in.hasNext()){ OMElement om = (OMElement)in.next(); Iterator in2 = om.getChildElements(); while(in2.hasNext()){ System.out.println(in2.next().toString()); //System.out.println(((OMElement)in2.next()).getText()); } } } }这个程序是axis2利用网上免费webservice服务一个城市的天气情况的实例
运行代码中------以上的代码就会得到结果
有结果可以看出信息是xml格式的,如果想去掉节点,直接输出信息,需要把代码中------下方的代码去注释运行,结果如下
利用axis2纯手动调用网上免费webservice服务的介绍就完事了,较上一节的方式,两种方式各有优缺点,上一节的方式操作复杂点,这节的方式简单点,但是对网络依赖大,所以操作时,一定要在浏览器中运行一下.wsdl的服务地址链接,成功打开后方可用于自己的代码中
在研究axis2访问webservice服务的过程发现一些别的方式,但操作时报出了一些错误,下节将说一下具体的情况
相关文章推荐
- axis2客户端调用免费的webservice服务的实例之三axis2使用RPC方式调用网上免费WebService
- axis2客户端调用免费的webservice服务的实例
- axis2客户端调用免费的webservice服务的实例之一通过wsdl生成客户端程序并本地调用
- 使用ksoap2 调用 WebService(实例:调用天气预报服务)
- 使用ksoap2 调用 WebService(实例:调用天气预报服务)
- 服务端使用Axis2-1.6.3发布webservice服务、客户端使用Axis1.4实现调用
- 使用ksoap2 调用 WebService(实例:调用天气预报服务)
- WebService服务及客户端调用简单实例
- 使用axis2创建webservice步骤以及客户端调用service服务代码
- webservice发布服务:AXIS2及客户端调用
- 基于Axis2的webservice开发及跨平台跨语言调用之二
- Web服务入门之二:通过axis2调用远程Web Service,实现天气预报功能
- android调用天气预报的webservice服务的例子
- 基于Axis2的web服务的开发、部署和客户端调用
- axis2通过城市名称调用.net写的asmx WebService查询天气实例
- axis2 调用webService(包含用axis2和xfire发布的)实例,加注释
- webservice 开发 axis2 简单部署服务 gSoap 客户端通信
- gsoap客户端调用几个webservice服务
- axis2 写webservice服务 和 被调用 的整个过程
- JAVA调用天气预报服务WebService (webxml.com.cn网站提供)