调用天气查询webservice服务的两种基本方法

来源:互联网 发布:同步推苹果助手 mac 编辑:程序博客网 时间:2024/05/23 01:13

1.把http://ws.webxml.com.cn/WebServices/WeatherWS.asmx?WSDL页面保存到磁盘.

2.命令提示符输入wsimport -extension -s .  D:/WeatherWebService.asmx.xml

wsimport是jdk的命令,如果提示没有这个命令,要先配好Java环境,-s是生成.java文件, (.)表示在当前目录生成,后面是上面保存的文件.

如果提示错误,无法生成文件,把文件里与错误提示行对应的行删除,然后再运行上面的命令,会在当前目录生成文件

3.在Eclipse中新建Java工程,把上面生成的文件拷贝到工程中

4.新建一个测试类

5.下面为调用webservice服务的两种方法

package test;


import java.net.URL;
import java.util.List;


import javax.xml.namespace.QName;
import javax.xml.ws.Service;


import org.junit.Test;


import cn.com.webxml.ArrayOfString;
import cn.com.webxml.WeatherWebService;
import cn.com.webxml.WeatherWebServiceSoap;


public class testClient {


public static void main(String[] args) throws Exception {
//创建服务视图
WeatherWebService weatherWebService = new WeatherWebService();
//通过服务视图得到服务端点
WeatherWebServiceSoap weatherWebServiceSoap = weatherWebService.getWeatherWebServiceSoap();
//调用webservice服务方法
ArrayOfString arrayOfString = weatherWebServiceSoap.getWeatherbyCityName("宁波");
List<String> resultlist = arrayOfString.getString();

for(String result : resultlist){
System.out.println(result);
}


}

@Test
public void test() throws Exception {
URL url = new URL("http://www.webxml.com.cn/WebServices/WeatherWebService.asmx");
QName qName =new QName("http://WebXml.com.cn/", "WeatherWebService");

//创建service
Service service = Service.create(url, qName);
//创建porttype
WeatherWebService weatherWebService = service.getPort(WeatherWebService.class);

//通过服务视图得到服务端点
WeatherWebServiceSoap weatherWebServiceSoap = weatherWebService.getWeatherWebServiceSoap();
//调用webservice服务方法
ArrayOfString arrayOfString = weatherWebServiceSoap.getWeatherbyCityName("郑州");
List<String> resultlist = arrayOfString.getString();

for(String result : resultlist){
System.out.println(result);
}
}
}