赞
踩
很长一段时间没更新博客了,最近刚跳槽成功,工作也慢慢稳定下来了,后面也会陆陆续续更新。
现在的公司用到了WebService,以前没用过,所以学习一下记录下来。
首先附上百度百科地址:WebService
简而言之,WebService是一种跨语言跨平台的远程调用技术。我们知道,在我们的日常web开发中,都是我们自己开发接口,自己去调这些接口,但是有种情况:接口不是我们写的,是第三方提供的,我们需要去调其它平台上其它语言的接口,我们就可以用WebService去实现。比如天气预报接口,我们完全可以去调用第三方天气预报接口来完成我们的业务需求。
除了上面的“什么是WebService”,你必须还要了解下面3样东西
先上程序启动类
- public class WeatherForecastService {
-
- public static void main(String[] args) throws RemoteException, ServiceException {
- System.out.println("======程序启动======");
- String result[] = QueryWeatherForecastInfo("杭州");
- for (String r : result)
- System.out.println(r);
- System.out.println("======程序结束======");
- }
-
- public static String[] QueryWeatherForecastInfo(String cityName) throws RemoteException, ServiceException {
- String[] arr = {};
- return arr;
- }
-
- }
上面的代码片段中,QueryWeatherForecastInfo是我们主要用来调用第三方接口的方法,这里为了演示不报错,暂时返回个空的String数组。
第三方天气预报WebService接口WSDL地址(网上有很多,不一定用我举例的这个):
http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl
打开以后,看到的信息即是WSDL文档对webservice接口的说明信息。
将网页上的文本信息拷贝下来,去掉黑色字体(无用的),如下图。
保存成一个.wsdl格式的文件
将这个.wsdl文件拷贝到我们的src目录下
右键此文件,Web Service -- > Generate Client
我们会看到自动给我们生成了很多的代码。
我们只需要调其中我们需要的方法就行了。
代码如下:
- public class WeatherForecastService {
-
- public static void main(String[] args) throws RemoteException, ServiceException {
- System.out.println("======程序启动======");
- String result[] = QueryWeatherForecastInfo("杭州");
- for (String r : result)
- System.out.println(r);
- System.out.println("======程序结束======");
- }
-
- public static String[] QueryWeatherForecastInfo(String cityName) throws RemoteException, ServiceException {
- WeatherWebServiceLocator locator = new WeatherWebServiceLocator();
-
- // 调用xxLocator对象的getXXPort()方法生成xxSoapBindingStub对象
- WeatherWebServiceSoapStub stud = (WeatherWebServiceSoapStub) locator.getWeatherWebServiceSoap();
- // 输出当天的天气状况
- String[] weather = stud.getWeatherbyCityName("杭州");
-
- return weather;
- }
-
- }
运行一下,输出如下:
至此,一个调用第三方接口的WebService的demo就完成了
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。