axis2客户端调用免费的webservice服务的实例之三axis2使用RPC方式调用网上免费WebService
2015-03-13 11:02
369 查看
前面两节我们分别说了调用webservice的两种方式:
1.axis2客户端调用免费的webservice服务的实例之一通过wsdl生成客户端程序并本地调用
2.axis2客户端调用免费的webservice服务的实例之二纯手动调用免费天气预报webservice服务
下面我们介绍一下第三种方式:axis2使用RPC方式调用网上免费WebService
这种方式类似第二种方式,只是用到的类不同,但是这种方式感觉容易出问题。不多说,直接上代码
<getRegionProvinceResponse
xmlns="http://WebXml.com.cn/"><getRegionProvinceResult><string>黑龙江,3113</string><string>吉林,3114</string><string>辽宁,3115</string><string>内蒙古,3116</string><string>河北,3117</string><string>河南,3118</string><string>山东,3119</string><string>山西,31110</string><string>江苏,31111</string><string>安徽,31112</string><string>陕西,31113</string><string>宁夏,31114</string><string>甘肃,31115</string><string>青海,31116</string><string>湖北,31117</string><string>湖南,31118</string><string>浙江,31119</string><string>江西,31120</string><string>福建,31121</string><string>贵州,31122</string><string>四川,31123</string><string>广东,31124</string><string>广西,31125</string><string>云南,31126</string><string>海南,31127</string><string>新疆,31128</string><string>西藏,31129</string><string>台湾,31130</string><string>北京,311101</string><string>上海,311102</string><string>天津,311103</string><string>重庆,311104</string><string>香港,311201</string><string>澳门,311202</string><string>钓鱼岛,311203</string></getRegionProvinceResult></getRegionProvinceResponse>
相同的webservive服务,本次使用有参数的方法:getSupportCityString
class Test2 {public static void main(String args[]) throws AxisFault{
其运行结果:
有时还会出现下面这个错误:
在网上查了好多,都没有什么解决方案,有了答案是让用方式一或方式二的方式
原因:说的都是webservice服务那边的问题。
所以大家可以更多的使用方式一或方式二去webserive开发
1.axis2客户端调用免费的webservice服务的实例之一通过wsdl生成客户端程序并本地调用
2.axis2客户端调用免费的webservice服务的实例之二纯手动调用免费天气预报webservice服务
下面我们介绍一下第三种方式:axis2使用RPC方式调用网上免费WebService
这种方式类似第二种方式,只是用到的类不同,但是这种方式感觉容易出问题。不多说,直接上代码
<span style="color:#3b5998;">package com.yy.test; import javax.xml.namespace.QName; import org.apache.axis2.AxisFault; import org.apache.axis2.addressing.EndpointReference; import org.apache.axis2.client.Options; import org.apache.axis2.rpc.client.RPCServiceClient; //</span><span style="color:#ff6600;">使用webservice无参数的方法:getRegionProvince</span>
public class Test2 { public static void main(String args[]) throws AxisFault{ //使用RPC方式调用WebService RPCServiceClient serviceClient = new RPCServiceClient(); Options options = serviceClient.getOptions(); //指定调用WebService的URL EndpointReference targetEPR = new EndpointReference( "http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl"); options.setTo(targetEPR); options.setAction("http://WebXml.com.cn/getRegionProvince"); //指定方法的参数值 Object[] opAddEntryArgs = new Object[] {}; //指定要调用的方法及WSDL文件的命名空间 QName opAddEntry = new QName("http://WebXml.com.cn/", "getRegionProvince"); //调用法并输出该方法的返回值 System.out.println(serviceClient.invokeBlocking(opAddEntry, opAddEntryArgs)); /*Object[] result=serviceClient.invokeBlocking(opAddEntry, opAddEntryArgs, classes); for (Object object : result) { System.out.println(object.toString()); }*/ } }其运行结果:
<getRegionProvinceResponse
xmlns="http://WebXml.com.cn/"><getRegionProvinceResult><string>黑龙江,3113</string><string>吉林,3114</string><string>辽宁,3115</string><string>内蒙古,3116</string><string>河北,3117</string><string>河南,3118</string><string>山东,3119</string><string>山西,31110</string><string>江苏,31111</string><string>安徽,31112</string><string>陕西,31113</string><string>宁夏,31114</string><string>甘肃,31115</string><string>青海,31116</string><string>湖北,31117</string><string>湖南,31118</string><string>浙江,31119</string><string>江西,31120</string><string>福建,31121</string><string>贵州,31122</string><string>四川,31123</string><string>广东,31124</string><string>广西,31125</string><string>云南,31126</string><string>海南,31127</string><string>新疆,31128</string><string>西藏,31129</string><string>台湾,31130</string><string>北京,311101</string><string>上海,311102</string><string>天津,311103</string><string>重庆,311104</string><string>香港,311201</string><string>澳门,311202</string><string>钓鱼岛,311203</string></getRegionProvinceResult></getRegionProvinceResponse>
相同的webservive服务,本次使用有参数的方法:getSupportCityString
package com.yy.test; import javax.xml.namespace.QName; import org.apache.axis2.AxisFault; import org.apache.axis2.addressing.EndpointReference; import org.apache.axis2.client.Options; import org.apache.axis2.rpc.client.RPCServiceClient; <a target=_blank href="/article/1842159.html" target="_blank" style="list-style: none; text-decoration: none; word-break: break-all; word-wrap: break-word; font-family: Verdana, 'Lucida Grande', Arial, Helvetica, sans-serif;"></a><pre name="code" class="java"><span style="color:#3b5998;">//</span><span style="color:#ff6600;">使用webservice有参数的方法:getSupportCityString</span>public
class Test2 {public static void main(String args[]) throws AxisFault{
//指定调用WebService的URL RPCServiceClient serviceClient2 = new RPCServiceClient(); Options options2 = serviceClient2.getOptions(); //指定调用WebService的URL EndpointReference targetEPR2 = new EndpointReference( "http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl"); options2.setTo(targetEPR2); options2.setAction("http://WebXml.com.cn/getSupportCityString"); //指定方法的参数值 Object[] opAddEntryArgs2 = new Object[] {"北京"}; //指定方法返回值的数据类型的Class对象 Class[] classes2 = new Class[] {String.class}; //指定要调用的方法及WSDL文件的命名空间 QName opAddEntry2 = new QName("http://WebXml.com.cn/", "getSupportCityString"); //调用法并输出该方法的返回值 System.out.println(serviceClient2.invokeBlocking(opAddEntry2, opAddEntryArgs2, classes2)); } }
其运行结果:
有时还会出现下面这个错误:
在网上查了好多,都没有什么解决方案,有了答案是让用方式一或方式二的方式
原因:说的都是webservice服务那边的问题。
所以大家可以更多的使用方式一或方式二去webserive开发
相关文章推荐
- axis2客户端调用免费的webservice服务的实例之二纯手动调用免费天气预报webservice服务
- axis2客户端调用免费的webservice服务的实例
- axis2客户端调用免费的webservice服务的实例之一通过wsdl生成客户端程序并本地调用
- 使用axis2创建webservice步骤以及客户端调用service服务代码
- Axis2调用WebService服务的3种方式(rpc调用不好用)
- webservice接口常见问题1:客户端使用SOAP方式调用CXF服务时异常
- 服务端使用Axis2-1.6.3发布webservice服务、客户端使用Axis1.4实现调用
- 使用Axis2编写webservice客户端,服务端
- WebService服务的发布及多种客户端方式调用
- eclipse中使用axis2插件发布服务(WebService)和生成客户端(Client)及axis2插件的使用
- Axis2使用WebService的客户端实例
- 使用AXIS2客户端调用 WEBSERVICE
- 如何在Android使用Rest服务从客户端调用webservice
- 使用Axis2开发Web服务 --- 客户端调用
- 使用ksoap2 调用 WebService(实例:调用天气预报服务)
- Axis2开发WebService客户端——RPC方式
- 利用resteasy框架构建rest webservice----第二波:使用不同的方式让resteasy发布我们的restful webservice 服务(实例、教程)
- 利用resteasy框架构建rest webservice----第二波:使用不同的方式让resteasy发布我们的restful webservice 服务(实例、教程)
- 服务使用CXF框架客户端使用Axis2框架的webservice实现方案
- 使用Axis2用Java实现调用WebService的客户端程序