项目中经常会遇到通过webservice发送短信功能,从表面上看,Web service 就是一个应用程序,它向外界暴露出一个能够通过Web进行调用的API,我们需要做的是用编程的方法通过Web来调用这个应用程序,即我们要编写客户端调用这个接口。很多情况下,服务提供方会提供一个Web service地址,比http://XX.XX.XX.XX/service/sendsms?wsdl,这个地址能获取一个WSDL文件。一般服务方也会提供一个用户名和密码。
如何编写程序调用webservice生成的WSDL,这里提供一个简单的方法,第一步是通过WSDL生成客户端java文件,第二步是根据生成的客户端java文件编写发送短信或其他功能的的代码。
1 通过WSDL生成客户端java文件
这里介绍的主要是通过Myeclipse内置插件生成java代码
第一步使用Eclipse工具穿件一个java project,将要使用的 *.wsdl 文件放到该工程下,如图所示
第二步,选择该项目,项目上右键,选择 New->Other->Web Service->Web Service Client->Next ,在该页面中选择要使用的WSDL,如图所示:
第三步点击Next,然后Finish,就会在相应的文件中生成 Java客户端文件了。不同的MyEclipse版本可能生成的java文件不一样。
2 项目中调用Web Service接口
上述操作中生成的客户端文件,可以打包后在项目中使用,也可以直接放到项目中相应的文件目录下即可。这些客户端文件需要使用到Axis的jar包,所以项目中最好也引用Axis相应的jar包。引入这些java文件后,参考相应的接口,然后在代码中调用,这样就简单多了。
以下是我的一个模板:
SmsServiceRemoteServiceLocator locater = newSmsServiceRemoteServiceLocator();//SmsServiceRemoteServiceLocator是WSDL文件生成客服端java类
SmsServiceRemote remote=locater.getSmsServiceRemotePort();//SmsServiceRemote是WSDL文件生成客服端java类
String result= remote.send(tel, msg, "", MasConfig.User_Name,MasConfig.password);
小结:
这种方式是调用webservice接口比较简单的一种方法,只需要根据提供的webservice接口获取相应的WSDL接口即可。在服务方提供的接口描述或者文档很少的情况下,或者对WSDL中的各个属性不熟悉时,将WSDL生产客户端java文件进行开发,能大大节省很多时间,而且难度也相应的小很多。