业务场景:SP向用户下发一条短信,并设置需要状态回执,用户收到短信后,网关将状态报告通知给CP/SP,CP/SP收到状态报告后,在控制台中打印出来。
开发平台:Eclipse
Step1:创建工程
创建之前请确认你的Eclipse已安装了WTP插件,没有安装的请去这里下:
新建一个Dynamic Web Project ,名字ctcc。
Target Runtime 选择你所使用的服务器版本,如TOMCAT 6.0,Finish.
Step2:导入并解析WSDL
接下来需要导入相关WSDL文件,右键点击工程->Import->File System,选择WSDL地址,导入所有的WSDL:
右键点击WSDL文件(后缀为wsdl的文件),选择Web Service->Generate Java bean skeleton生成接口代码框架。
成功后运行服务器,在IE中输入http://localhost:8080/ctcc/services应该会出现如下页面,显示现有的WEBSERVICE:
Step3:实现SendSms接口及SmsNotification接口
找到cn.com.chinatelecom.www.wsdl.ctcc.sms.send.v2_1.service.SendSmsBindingStub
类(请耐心寻找—。—),在createCall()开始加入下面语句:
其中downsoap.properties是下行SOAPHEADER的配置文件,读出REQUESTSOAPHEADER的各项属性;RouteSoapHeader是SoapHeader的封装解析类,与上下行SOAPHEADER,MD5加密类和上面的WSDL一样由电信提供。
找到cn.com.chinatelecom.www.wsdl.ctcc.sms.notification.v2_1.service.SmsNotificationBindingImpl
类,在notifySmsDeliveryReceipt中添加如下通知代码:
Step4:编写主程序
创建一个Test类,代码:
Step5:运行
打开服务器并运行,程序会往http://localhost:8080/ctcc/services/SendSms发送短信,发送完毕后返回ReqId,手机收到短信后网关会通知http://localhost:8080/ctcc/services/SmsNotification,
cn.com.chinatelecom.www.wsdl.ctcc.sms.notification.v2_1.service.SmsNotificationBindingImpl
类接到通知信息后就会调用notifySmsDeliveryReceipt方法(第三步已写好),输出Dilivery Statu等信息。