为什么80%的码农都做不了架构师?>>>
最近看了很多WS的应用,自己就写了一个, 方便以后用的着的时候查阅。
本篇知识入门级的简单应用。
1. 下载axis_src_1.4.zip文件
下载地址: http://apache.etoak.com//ws/axis/1_4/
解压之后就找到Lib包, 路径如下: axis-1_4\webapps\axis\WEB-INF\lib
就是需要这个下面的包
2. 下载一个eclipse的工具
地址如下: http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/helios/SR1/eclipse-jee-helios-SR1-win32.zip
这个工具解压之后就可以使用, 而且里面还带有WebService的生成代码工具。
3. 找到weather的WSDL文件
地址如下: http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl
在IE浏览器中打开, 然后另存为XXX.wsdl的文件
4. 在eclipse中新建一个java project的项目, 将wsdl的文件放到src下面; 并且加入前面解压axis的jar包
其中文件列表如下:
activation.jar;
axis.jar;
ais-ant.jar;
commons-discovery-0.2.jar;
commons-logging-1.0.4.jar;
jaxrpc.jar;
mail.jar
saaj.jar
wsdl4j-1.5.1.jar
5. 使用eclipse的生成客户端的工具生成代码
选中wsdl的文件, 然后右键 -> web service -> Generate Client
配置一下就可以了产生代码了。
6. 调用测试, 代码如下:
import javax.xml.rpc.ServiceException;
import cn.com.WebXml.*;
public class TestWs {
public static void main(String[] args) throws ServiceException, RemoteException {
WeatherWebServiceLocator locator = new WeatherWebServiceLocator();
WeatherWebServiceSoapStub service = (WeatherWebServiceSoapStub) locator
.getPort(WeatherWebServiceSoapStub.class);
String[] str = service.getSupportProvince();
for(int i = 0; i< str.length; i++){
System.out.println(str[i].toString());
}
System.out.println("OKOOOOOOOOOOOOOOOOOOOOO");
String[] str_city = service.getSupportCity("江苏");
for(int i = 0; i< str_city.length; i++){
System.out.println(str_city[i].toString());
}
}
}
执行结果如下:
log4j:WARN No appenders could be found for logger (org.apache.axis.i18n.ProjectResourceBundle).
log4j:WARN Please initialize the log4j system properly.
直辖市
特别行政区
黑龙江
吉林
辽宁
内蒙古
河北
河南
山东
山西
江苏
安徽
陕西
宁夏
甘肃
青海
湖北
湖南
浙江
江西
福建
贵州
四川
广东
广西
云南
海南
新疆
西藏
台湾
亚洲
欧洲
非洲
北美洲
南美洲
大洋洲
OKOOOOOOOOOOOOOOOOOOOOO
南京 (58238)
苏州 (58357)
昆山 (58356)
南通 (58259)
太仓 (58377)
吴县 (58349)
徐州 (58027)
宜兴 (58346)
镇江 (58248)
淮安 (58145)
常熟 (58352)
盐城 (58151)
泰州 (58246)
无锡 (58354)
连云港 (58044)
扬州 (58245)
常州 (58343)
宿迁 (58131)