Flex4关于webservice接口传入对象的解决方案
发布时间:2020-12-15 04:21:20 所属栏目:百科 来源:网络整理
导读:一、WSDL描述 xsd:complexType name="DispMember"xsd:sequencexsd:element minOccurs="1" name="id"nillable="false" type="int"/xsd:element minOccurs="1" name="groupId"nillable="false" type="int"/xsd:element minOccurs="1" name="centerId"nillable=
一、WSDL描述 <xsd:complexType name="DispMember"> <xsd:sequence> <xsd:element minOccurs="1" name="id" nillable="false" type="int"/> <xsd:element minOccurs="1" name="groupId" nillable="false" type="int"/> <xsd:element minOccurs="1" name="centerId" nillable="false" type="int"/> <xsd:element minOccurs="1" name="orgMemberId" nillable="false" type="int"/> <xsd:element minOccurs="1" name="orderno" nillable="false" type="int"/> <xsd:element minOccurs="1" name="isurgent" nillable="false" type="int"/> <xsd:element minOccurs="0" name="remark" nillable="false" type="string"/> </xsd:sequence> </xsd:complexType> <xsd:element name="DispMemberReq"> <xsd:complexType> <xsd:sequence> <xsd:element minOccurs="1" name="dispMember" nillable="false" type="tns:DispMember" /> </xsd:sequence> </xsd:complexType> </xsd:element> <wsdl:message name="DispMemberRequest"> <wsdl:part element="tns:DispMemberReq" name="parameters" /> </wsdl:message> <wsdl:operation name="DispMemberAdd"> <wsdl:input message="tns:DispMemberRequest" /> <wsdl:output message="tns:DispMemberResponse" /> </wsdl:operation>添加用户时,需要传递个“DIspMember”对象。 二、FLEX客户端实现 最容易的解决方案是使用Flash Builder调用wsdl生成客户端代码,然后使用生成的代码实现。但是这种方法会产生大量的类。 private function addMember(): void { var scws:ScService = new ScService(); scws.wsdl = "http://192.168.2.172:8080/axis2/services/ScService?wsdl"; var member:DispMember = new DispMember(); member.id = 0; member.groupId = 1; member.centerId = 1; member.isurgent = 0; member.orderno = 0; member.remark = ""; var req:DispMemberReq = new DispMemberReq(); req.dispMember = member; var st:AsyncToken = scws.DispMemberAdd(req); st.addResponder(new AsyncResponder(onResult,faultHandler,st)); scws.addEventListener(ResultEvent.RESULT,onResult); } private function onResult(event:ResultEvent,token:AsyncToken):void { Alert.show("Msg",event.result.memberId); textArea.text = event.result.memberId + "," + event.result.returnCode; event.preventDefault(); } private function faultHandler(event:FaultEvent,token:AsyncToken):void { trace(event.fault.faultString); }其中DispMember、DispMemberReq、ScService都是生成的类。 三、解决方案二 使用mx.rpc.soap.WebService类来调用方法,传入参数。 ws = new WebService(); ws.wsdl = "http://192.168.2.172:8080/axis2/services/ScService?wsdl"; ws.loadWSDL(); ws.addEventListener(FaultEvent.FAULT,faultHandler); ws.addHeader(new AuthHeader("admin","1")); var dispMember:Object = new Object(); dispMember.id = 0; dispMember.groupId = groupId; dispMember.centerId = 1; dispMember.orgMemberId = employee.id; dispMember.orderno = 1; dispMember.isurgent = 0; dispMember.remark = ""; var object:Object = new Object(); object.dispMember = dispMember; ws.getOperation("DispMemberAdd").send(object) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |