欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

基于Axis的Web Service客户端调用 博客分类: webservice WebWebServicelog4jjunitApache 

程序员文章站 2024-03-23 20:05:04
...
本文通过http://www.webxml.com.cn网站的2500多个城市天气预报来演示如何编写Web Serivce客户端.
第一步:基于服务端生成客户端要使用的类文件。
执行WebService工具文件夹下的"wsdl产生实体.bat"文件。
------wsdl产生实体.bat文件内容--------------
java -cp .\lib\activation.jar;.\lib\mail.jar;.\lib\axis.jar;.\lib\axis.jar;.\lib\commons-discovery-0.2.jar;.\lib\commons-logging-1.0.4.jar;.\lib\jaxrpc.jar;.\lib\log4j-1.2.8.jar.\log4j.properties;.\lib\saaj.jar;.\lib\wsdl4j-1.5.1.jar org.apache.axis.wsdl.WSDL2Java -s "http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl"

pause;
----------文件结束-----------------------------
红色部分可以替换成你要访问的服务端路径。
执行后,会自动生成有路径的类文件。这是客户端调用的基础。
第二步:将生成的类文件连同文件夹一同考入工程中,同时将lib文件夹下的jar文件加入工程lib库。
第三步:编写调用类
public static void main(String[] args){
WeatherWebServiceSoapStub binding;
try{
binding = (WeatherWebServiceSoapStub) new WeatherWebServiceLocator().getWeatherWebServiceSoap();
} catch (javax.xml.rpc.ServiceException jre) {
if (jre.getLinkedCause() != null)
System.out.println("binding err");
jre.getLinkedCause().printStackTrace();
throw new junit.framework.AssertionFailedError(
"JAX-RPC ServiceException caught: " + jre);
} try {
String[] result = binding.getWeatherbyCityName("上海").getString();
System.out.println("上海未来三天的天气情况");
for(String r:result){
System.out.print(r);
}

} catch (Exception e) {
System.out.println("服务端出现问题,请修改");
e.printStackTrace();

}
}
//细心的朋友请注意类名的特点,它有助于你编写任何WebService客户端