1、引入很多jar包,pom依赖,注意如果有冲突的时候要排除或者查看引入版本是否冲突,buildpath是否引入的其他版本的jar
activation.jar
axis-ant.jar
axis.jar
commons-discovery-0.2.jar
commons-logging-1.0.4.jar
jaxrpc.jar
log4j-1.2.8.jar
mail.jar
saaj.jar
wsdl4j-1.5.1.jar
2、第三方天气预报WebService接口WSDL地址(网上有很多,不一定用我举例的这个):
http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl
打开以后,看到的信息即是WSDL文档对webservice接口的说明信息。
将网页上的文本信息拷贝下来,去掉黑色字体(无用的),如下图。
3、保存成一个.wsdl格式的文件
将这个.wsdl文件拷贝到我们的src目录下
4、右键此文件,new-->Web Service -- > web services Client-->拷贝wsdl网址-->finish
我们会看到自动给我们生成了很多的代码。
我们只需要调其中我们需要的方法就行了。
5、写main类
代码如下:
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就完成了,将该http://www.webxml.com.cn/zh_cn/weather_icon.aspx网站的图片下载到本项目,类似4.gif表示天气图标,封装所需要的参数返回给前端就ok了