导读:
去年一年一直在开发Web Service,而新的项目也同样是一个Web Service,但是工作一直集中在服务段的开发,对于Axis的应用也一直把它当作一个容器而已。虽然也改过Axis的一些代码,但是对它的了解基本上都停留在皮毛上。而自己写的JUnit测试也因为是在同一台机器上,而且service和client的开发语言都是java,而与实际的客户端开发存在着一些差距。
最近在CSDN上翻帖子的时候看到有些人问如何开发一个Web Service的客户端,自己也作了一下粗浅的了解,同时应用Axis2的客户端自动生成功能,生成了一个客户端。
具体操作如下(Window XP):
1、下载解压缩axis2。前提是已经安装好了jdk并设置好了JAVA_HOME系统变量。
2、添加 AXIS2_HOME系统变量,同时把bin目录放在path中。
3、到提供web service的网址下在wsdl,我使用的例子是/globalweather.asmx?WSDL,这里要注意,因为我们可以看到,每行前面都有一个短线,所以需要我们查看源代码,然后把源代码保存为weather.wsdl。
4、然后在工程目录下,运行以下DOS命令
>WSDL2Java -uri resources/weatherservice.wsdl -p src -d xmlbeans -s -o build/client
这是我们就可以看到Axis2生成了很多文件和文件夹,这里就不一一介绍,有兴趣地可以自己研究一下。
为了测试生成的结果,我们继续以下的步骤,而在开发过程中,就应该根据自己的实际项目,进行处理。
5、在刚才声称目录的文件夹中建立Eclipse工程。把Axis2的库引入到项目中。这时,应该项目中没有错误。
6、把resources目录包含的项目的类目录中。
7、找到GlobalWeatherStub类,在其中添加main方法如下:
staticpublicvoidmain(String[]args)...{
try...{
GlobalWeatherStubsws=newGlobalWeatherStub();
GetCitiesByCountryDocumentgcbcd=GetCitiesByCountryDocument.Factory.newInstance();
gcbcd.addNewGetCitiesByCountry();
gcbcd.getGetCitiesByCountry().setCountryName("china");
GetCitiesByCountryResponseDocumentresponse=sws.GetCitiesByCountry(gcbcd);
System.out.println(response.getGetCitiesByCountryResponse().getGetCitiesByCountryResult());
}catch(AxisFaultaf)...{
af.printStackTrace();
}catch(RemoteExceptionre)...{
re.printStackTrace();
}
}
运行GlobalWeatherStub类,我们就可以看到Eclipse在控制板中打印出来的城市列表了。
版权所有: idilent 网站转载请注明作者并链接到/idilent,
其他转载方式请与作者联系(idilent@)。
本文转自
/idilent/archive//10/22/1836694.aspx