`
snoopy7713
  • 浏览: 1147116 次
  • 性别: Icon_minigender_2
  • 来自: 火星郊区
博客专栏
Group-logo
OSGi
浏览量:0
社区版块
存档分类
最新评论

Flex与服务器交互之三(使用WebService组件同服务器WebService通讯) .

    博客分类:
  • Flex
 
阅读更多

由于Flex只是一种客户端技术其本身并不能直接同数据库交互,在实际的应用开发过程中Flex提供了如URLRequest、HTTPService、RemoteObject、WebService等类以实现同服务器的通讯和数据交互,下面做一些介绍和实例解析:
   1、使用WebService组件同服务器交互
      WSDL描述以供Flex WebService解析调用相关接口信息(如图):

http://p.blog.csdn.net/images/p_blog_csdn_net/xingjunli/EntryImages/20091225/P3001.jpg

     使用过程中在程序中添加一个WebService组件,设置WSDL属性为WebService的WSDL地址 调用<mx:operation>节点中定义的方法,设置result和fault事件函数接收ResultEvent和FaultEvent对象获取返回数据或捕获错误
      WebService组件官方帮助文档http://livedocs.adobe.com/flex/3/html/help.html?content=data_access_2.html
      WebService组件相关属性和事件:http://livedocs.adobe.com/flex/3/langref/mx/rpc/soap/mxml/WebService.html

  1.      <mx:WebService  
  2.   Properties  
  3.   concurrency="multiple|single|last"  
  4.   destination="No default."  
  5.   id="No default."  
  6.   serviceName="No default."  
  7.   showBusyCursor="false|true"  
  8.   makeObjectsBindable="false|true"  
  9.   useProxy="false|true"  
  10.   wsdl="No default."               //请求的WSDL地址  
  11.    Events  
  12. fault="No default."      //请求发生错误时触发的事件(通常在下面<operation>具体的方法中再具体定义)  
  13. result="No default."      //请求完成后触发的事件以处理返回结果  
  14. />  

 
  WebService调用方法节点属性和事件(可包含多个)

  1.  <mx:operation  
  2.   Properties  
  3.   concurrency="multiple|single|last"  
  4.   name=No default, required.    //WebService方法名 必填  
  5.   resultFormat="object|xml|e4x"  
  6.   makeObjectsBindable="false|true"  
  7.      
  8.   Events  
  9. fault="No default."      //请求发生错误时触发的事件  
  10. result="No default."      //请求完成后触发的事件以处理返回结果  
  11. />  

 

   2、应用示例:(调用WebService 根据用户输入的ID 查询返回XML中用户详细信息):
   服务器端WebService定义:
   

  1. [WebService(Namespace = "http://csdn.richardjun.net/")]  
  2.    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]  
  3.    [System.ComponentModel.ToolboxItem(false)]  
  4.    // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.    
  5.    // [System.Web.Script.Services.ScriptService]   
  6.    public class SearchUserService : System.Web.Services.WebService  
  7.    {  
  8.   
  9.        [WebMethod]  
  10.        public String SearchUserName(String useID)  
  11.        {  
  12.            XElement element = XElement.Load(Server.MapPath( @"/FlexService/Test.XML"));  
  13.            IEnumerable<XElement> uses = from v in element.Elements().ToList()  
  14.                                         where (String)v.Attribute("id") == useID  
  15.                                         select v;  
  16.            if (uses != null && uses.Count() > 0)  
  17.                return uses.First().ToString();  
  18.            else  
  19.                return String.Empty;  
  20.        }  
  21.    }  

   

 

服务器端用户详细信息Test.XML文件:
 

  1. <?xml version="1.0" encoding="utf-8" ?>  
  2.  <root xmlns="http:=//www.byd.com/ChartData/XML">  
  3.    <User id="0">  
  4.      <Name>宋江</Name>  
  5.      <NikeName>天魁星</NikeName>  
  6.      <Position>梁山泊寨主</Position>  
  7.      <Weapon>锟吾剑</Weapon>  
  8.    </User>  
  9.    <User id="1">  
  10.      <Name>卢俊义</Name>  
  11.      <NikeName>天罡星</NikeName>  
  12.      <Position>梁山泊副寨主</Position>  
  13.      <Weapon>枪、棒</Weapon>  
  14.    </User>  
  15.    <User id="2">  
  16.      <Name>吴用</Name>  
  17.      <NikeName>天机星</NikeName>  
  18.      <Position>梁山泊军师</Position>  
  19.      <Weapon>铜链</Weapon>  
  20.    </User>  
  21.    <User id="3">  
  22.      <Name>公孙胜</Name>  
  23.      <NikeName>天闲星</NikeName>  
  24.      <Position>梁山泊副军师</Position>  
  25.      <Weapon>松纹古定剑</Weapon>  
  26.    </User>  
  27.    <User id="4">  
  28.      <Name>大刀关胜</Name>  
  29.      <NikeName>天勇星</NikeName>  
  30.      <Position>梁山泊马军五虎大将之首</Position>  
  31.      <Weapon>青龙偃月刀</Weapon>  
  32.    </User>  
  33.    <User id="5">  
  34.      <Name>林冲</Name>  
  35.      <NikeName>天雄星豹子头</NikeName>  
  36.      <Position>梁山泊马军五虎大将之二</Position>  
  37.      <Weapon>丈八蛇矛</Weapon>  
  38.  </User>  
  39.  </root>  
  40.      

 

Felx代码:
    

  1. <mx:Canvas x="10" y="218" width="393" height="200" backgroundColor="#84DACF">  
  2.   <mx:Label x="4" y="10" text="UserID:"/>  
  3.   <mx:Label x="60" y="83" width="160" id="labName" color="#C52167" fontSize="17"/>  
  4.   <mx:Label x="60" y="109" width="160" id="labPosition" color="#C52167" fontSize="17"/>  
  5.   <mx:Label x="60" y="57" width="160" id="labNikeName" color="#C52167" fontSize="17"/>  
  6.   <mx:Button x="228" y="8" label="searchWebService" width="131" click="requestWebService();"/>  
  7.   <mx:TextInput x="60" y="8" id="txtUserID"/>  
  8.  </mx:Canvas>  

 
   引入WebService组件(<mx:operation></mx:operation>节点定义WebService定义的方法信息(对应WSDL文件的方法描述)可以为多个):
 

  1. <mx:WebService id="uReqWebService"  wsdl="http://localhost:2222/FlexService/SearchUserService.asmx?WSDL">  
  2.   <mx:operation name="SearchUserName" resultFormat="object" fault="serviceReqFault(event)" result="serviceReqResult(event)">  
  3.   </mx:operation>  
  4.  </mx:WebService>  

 
    Flex中发送请求:

  1. private function requestWebService():void  
  2. {  
  3.  uReqWebService.SearchUserName(txtUserID.text); //<mx:operation/>定义的方法   
  4.  labMsg.alpha = 1;  
  5. }  

 

 

    Flex中接收返回数据:

  1. private function serviceReqResult(e:ResultEvent):void  
  2. {  
  3.  if(e.result.toString().length > 0)  
  4.  {  
  5.   var arry:XML = XML(e.result);  
  6.   if(arry != null && arry.length()> 0)  
  7.   {  
  8.    labName.text = arry.children()[0];  
  9.    labNikeName.text = arry.children()[1];  
  10.    labPosition.text = arry.children()[2];  
  11.   }  
  12.  }  
  13.  else   
  14.  {  
  15.   labName.text = "";  
  16.   labNikeName.text = "";  
  17.   labPosition.text = "";  
  18.   Alert.show("查不到匹配的用户信息!");  
  19.  }  
  20.  labMsg.alpha = 0;  
  21. }  

 

 

    Flex中错误处理:

  1. private function serviceReqFault(e:FaultEvent):void  
  2. {  
  3.  Alert.show("请求WebService出错!原因是:" + e.message);  
  4.  labMsg.alpha = 0;  
  5. }  


结果如图:

 


    http://p.blog.csdn.net/images/p_blog_csdn_net/xingjunli/EntryImages/20091225/P3002.jpg

分享到:
评论

相关推荐

    Flex与Java的交互

    在本文中,我们将深入探讨如何使用Flex 4与Java进行通信,并通过三种不同的方法实现这一目标:RemoteObject、HTTPService和WebService。 1. Flex与普通Java类通信:RemoteObject RemoteObject是Flex中用于与远程...

    纯flex网站前台(httpservice、webservice进行数据交互)

    在“纯flex网站前台(httpservice、webservice进行数据交互)”这个项目中,我们主要关注的是如何使用Flex来实现与服务器端的数据通信,这涉及到HTTPService和WebService两种技术。 1. **Flex框架**:Flex提供了一...

    Flex与后台交互的方法_HTTPService_WebService_URLLoader

    本文将深入探讨Flex与后台交互的三种主要方法:HTTPService、WebService和URLLoader,并重点关注基于WebService的交互方式。 一、HTTPService HTTPService是Flex中用于与HTTP服务器进行数据交换的主要组件。它基于...

    flex4与Java交互.docx

    在本文中,我们将探讨如何在Flex 4环境中与Java进行交互,主要涉及三种通信方式:RemoteObject、HTTPService以及WebService。这些交互方式允许Flex客户端与后端Java应用进行数据交换,从而实现丰富的用户界面和强大...

    Flex4.0 如何通过 HttpService和WebService与服务器进行通信

    本篇文章将深入探讨如何利用Flex 4.0中的HttpService和WebService组件与Java Struts2框架构建的服务器进行通信。 首先,我们来看HttpService。HttpService是ActionScript 3.0中的一个类,用于发起HTTP请求,通常...

    flex4与Java交互.pdf

    在本文中,我们将深入探讨Flex 4与Java交互的三种主要方式:通过RemoteObject与普通Java类通信、使用HTTPService与服务器交互以及通过WebService与Web服务通信。这些技术在开发富互联网应用程序(RIA)时,允许前端...

    Flex与Java交互通讯视频详解

    Flex与Java交互通讯是Web开发中的一个重要话题,它涉及到客户端与服务器端的高效协同工作。Flex,作为Adobe的开源框架,主要用于构建富互联网应用程序(RIA),而Java则是一种广泛使用的后端开发语言,能提供强大的...

    Flex调用Webservice及java程序

    在本主题中,我们将深入探讨如何使用Flex调用Web服务,尤其是与Java程序的交互。 1. **Flex与Web服务的交互** Flex可以通过SOAP(简单对象访问协议)或AMF(动作消息格式)来调用Web服务。SOAP是一种基于XML的通信...

    WebService数据交互事例

    【WebService数据交互事例】是关于使用Flex与.NET平台间通过WebService进行数据交换的一个实践教程。Flex是一款强大的富互联网应用程序(RIA)开发工具,而WebService是一种基于SOAP协议的跨平台、跨语言的数据交换...

    Flex与服务器端通信

    - **C#与AMF**:在C#中,可以使用第三方库如AMF.NET或Rediska.NET来实现AMF通信协议,使得C#服务器能够理解并处理Flex客户端发送的AMF消息。 - **服务端接口设计**:为了与Flex的RemoteObject通信,C#服务器需要...

    Flex与asp.net的WebService通讯

    ### Flex与ASP.NET WebService通讯详解 随着技术的发展与跨平台需求的增长,各种技术栈之间的交互变得越来越重要。本文将详细介绍Flex与ASP.NET WebService之间的通讯实现方式,并着重讲解通过SoapHeader进行认证的...

    Flex与.NET交互

    在Flex与.NET的交互中,FluorineFx是一个重要的第三方库,它作为一个AMF(Action Message Format)服务器端代理,实现了Flex客户端与.NET服务之间的无缝通信。AMF是一种二进制数据格式,用于提高数据传输效率,降低...

    五分钟用Flex构建WebService应用

    在本教程中,“五分钟用Flex构建WebService应用”将带你快速掌握如何利用Flex与WebService进行数据交互,这对于开发动态、实时更新的Web应用至关重要。 WebService是一种基于Web的、平台无关的服务,它通过HTTP协议...

    flex ,webservice(.net) 交互

    Flex与.NET Webservice交互是开发跨平台Web应用时常见的技术组合。Flex,基于ActionScript 3.0,是一种用于创建富互联网应用程序(RIA)的开放源码框架,它提供了丰富的用户界面组件和强大的数据绑定功能。而.NET ...

    Flex+WebService附件上传下载

    总之,Flex与WebService结合使用,能够创建高效、跨平台的文件上传和下载解决方案。理解并掌握这一技术,对于开发人员来说是非常有价值的,尤其是在构建企业级RIA应用时。通过深入学习和实践,你可以进一步提升在RIA...

    flex与数据库交互

    总结来说,Flex通过HTTPService组件与WebService进行通信,进而与远程数据库进行数据交互。这为富互联网应用程序提供了强大的数据处理能力,同时也带来了一系列的设计和优化挑战。理解并熟练掌握这些概念和技巧,...

    Flex与后台交互的方法

    Flex与后台交互的方法是其核心功能之一,确保前端用户界面与后端数据服务之间的无缝通信。以下将详细介绍Flex与后台交互的常见方法和相关知识点。 1. **AMF (Action Message Format)** AMF是Flex与服务器之间进行...

    Flex调用WebService例子(Flex工程+ XFire WebService工程)

    1. **创建WebService代理**:在Flex工程中,使用wsdl2as3工具或者直接在.mxml文件中配置WebService组件,指定WebService的WSDL(Web Services Description Language)地址。这将自动生成与服务方法对应的...

    Flex webservice數據交互

    首先,`标题`中的“Flex webservice數據交互”指的是使用Flex客户端通过Web服务接口与服务器进行数据交换,这里的Web服务通常是基于SOAP协议的。SOAP(Simple Object Access Protocol)是一种轻量级、基于XML的协议...

Global site tag (gtag.js) - Google Analytics