class pack.services.MyWebService{
/*
* webservice object
*/
private var webService:mx.services.WebService;
/*
* record service's address
*/
private var WSDL:String;
/*
* service's call back object
*/
public var callBack:Object;
/**
* constructure
* @param address:webservice's address
*/
function MyWebService(address:String){
WSDL = address;
this.webService = new mx.services.WebService(address);
this.webService.WSDL=address;
this.webService.onFault=onLoadFault;
}
/**
* call service's method
* @param methodName:the method which called
* @param object:paramaters the method required
* @param resultFunction:function which to do after the called success
* @param statusFunction:function which to do when call the method fail
*/
function accessRemote(methodName:String, object:Object, resultFunction:Function, statusFunction:Function){
this.callBack = this.webService[methodName](object);
this.callBack.onResult = resultFunction;
this.callBack.onFault = statusFunction;
}
/**
* when load service fail,do this function
*/
function onLoadFault(fault){
trace("load service " +WSDL + "error--->"+ fault.faultcode);
}
}
使用方法:
var myService = new pack.services.MyWebService("http://localhost:8080/axis/services/SmsService?wsdl");
var message = new pack.model.Message();
message.setContents("我是一匹来自北方的狼");
message.setFrom("哈尔滨");
message.setPriority(123456);
message.setTo("上海");
myService.accessRemote("send",message, onResult, onFault);
function onResult(result){
trace("call service ok---->" + result.code);
}
function onFault(fault){
trace("call service fault--->" + fault.faultcode);
}