`
wangleifire
  • 浏览: 509186 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

远程对象

    博客分类:
  • FLEX
阅读更多
Technorati 标签: Flex

什么是RemoteObject?
顾名思义,即远程对象。这里指的就是在Flex中获取Java对象。有什么用呢?这样Flex可以更加简 单的获取服务端的数据,比如你在Java中有个方法进行了数据查询,那么你可以很容易通过Flex里的RemoteObject访问到该类,并调用该方 法,最后返回的数据是Flex也兼容的Array对象。

好了,下面开始进行工作....o(∩_∩)o...

1.新建Java类
       1
   Source folder :  指定源路径(本例为FlexRemoteObject/src).
   Package       : 指定包名.
   Name           :  指定类名.

2.编写RemoteClass内容.
      2
     这是一个简单的Class,里面只有一个public方法  sayHello  ,带有一个String参数,并且返回一个String.

3.配置BlazeDS的  remoting-config.xml 
       1).它是RemoteObject和相关远程访问的配置文件.路径位于
      
      
        2).改写其代码,如下:
          <?xml version="1.0" encoding="UTF-8"?>
          <service id="remoting-service" class="flex.messaging.services.RemotingService">
             <adapters>
                  <adapter-definition id="java-object" class="flex.messaging.services.remoting.adapters.JavaAdapter" default="true"/>
             </adapters>

             <default-channels>
                  <channel ref="my-amf"/>
             </default-channels>
   
             <!-- 新增内容,destination指定一个RO对象,id将在Flex中进行RO请求时调用. -->
             <destinationid="RemoteClassRO">
                  <properties>
                      <!-- source指定调用类的全路径 -->
                      <source>com.test.RemoteClass</source>
                      <!-- scope指定作用域 -->
                      <scope>application</scope>
                  </properties>
             </destination>

           </service>
  
   
  注意:在修改了配置文件后可能需要重启web服务器(Tomcat)

4.  编写mxml文件,进行RO请求.
      1).打开FlexRemoteObject.mxml文件,编写内容如下:
         <?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init();">
        <mx:Style>
            Label{
                fontSize:14;
                fontFamily:"微软雅黑";
            }
            TextInput{
                fontSize:14;
                fontFamily:"微软雅黑"; height:25; width:149;  paddingBottom:-4; paddingLeft:4; paddingTop:-2;
            }
            Button{
                fontSize:"12"
            }
        </mx:Style>

        <mx:Script>
            <![CDATA[
                import mx.rpc.events.ResultEvent;
                import mx.controls.Alert;
                private var alertCss:CSSStyleDeclaration;
                private function init():void{
                    alertCss = StyleManager.getStyleDeclaration("Alert");
                    alertCss.setStyle("modalTransparencyColor","haloBlue");
                    alertCss.setStyle("themeColor","haloBlue");
                    alertCss.setStyle("fontSize","14");
                    alertCss.setStyle("fontFamily","微软雅黑");
                }
                private function callRO():void{
                    var name:String  = txt.text;
                    if(name==""){
                        Alert.show("请输入姓名!","提示信息");
                    }else{
                        firstRO.sayHello(name);
                        firstRO.addEventListener(ResultEvent.RESULT,getROResult);
                    }
                }
                private function getROResult(e:ResultEvent):void{
                    Alert.show(e.result.toString(),"远程对象访问");
                }
            ]]>
        </mx:Script>
        <mx:RemoteObject id="firstRO" destination="RemoteClassRO" />
        <mx:Label id="lbl" text="请输入姓名:"  x="29" y="49" />
        <mx:Button id="btn" click="callRO()" label="RO请求"  x="307" y="50" />
        <mx:TextInput x="124" y="49" id="txt" text="爷们" />
</mx:Application>

其中:1.<mx:Style></mx:Style>为样式区域,里面为页面的组件设定了样式;
        2.<mx:Script></mx:Script>为脚本区域,里面是将调用到的函数;
        3.剩下为页面各个组件.

init()函数:主要是为Alert设定相关样式,不作为重点介绍.

callRO()函数:作为请求函数,与页面的Button组件的click事件进行了关联,即当点击Button时,会调用这个callRO()函数.
                 函数内部对文本框输入内容进行了判断,当输入内容为空时,弹出相关提示;
                 反之,进入远程对象的方法调用,firstRO.sayHello(name)——其中name为文本框内容,
                 另外还为firstRO对象添加了一个事件的监听,firstRO.addEventListener(ResultEvent.RESULT,getROResult);
                     这是告诉firstRO对象,当触发了远程对象的方法调用后,指定哪个函数为回调函数.

getROResult()函数,是一个回调函数,将远程对象方法返回值用消息框的形式显示出来.

上面提到的回调函数,如果对AJAX稍有了解的话,就容易理解了,如果你还不太了解,那么找些资料看看吧,o(∩_∩)o...

5.运行查看,效果如图:

呵呵,感觉还是挺有意思的~~

这个RemoteObject的使用,跟DWR的感觉很相似,有些共通的东西,但是我不会说~~o(∩_∩)o...哈哈

分享到:
评论

相关推荐

    Remoting简单远程对象实例

    这个“Remoting简单远程对象实例”着重于介绍如何创建和使用远程对象,使得一个应用程序能够调用另一个应用程序的对象方法,就像它们在同一个进程中一样。 在.NET Remoting中,远程对象被定义为具有公共接口的类,...

    远程对象方法调用(动态代理+socket).rar

    远程对象方法调用(Remote Method Invocation,简称RMI)是Java平台中用于分布式计算的一种机制,它允许在不同网络节点上的对象之间进行方法调用,仿佛这些对象都在同一个进程中一样。RMI结合了动态代理和Socket通信...

    TIA博途V19无法勾选来自远程对象的PUT.GET访问的解决办法.docx

    TIA博途V19无法勾选来自远程对象的PUT.GET访问的解决办法

    NET的远程对象编程示例代码

    .NET的远程对象编程(Remoting)是微软.NET框架提供的一种技术,它允许应用程序在不同的进程或甚至不同的计算机之间共享对象。这项技术的核心在于使对象能够跨越进程和网络边界,仿佛它们在同一环境中运行。通过.NET...

    winform 异步调用远程对象方法源码

    然而,在处理耗时操作时,如调用远程对象的方法,直接在主线程上执行会导致UI线程被阻塞,从而影响用户界面的响应性。为了解决这个问题,开发人员会采用异步编程技术。本文将详细探讨在WinForm应用中如何实现异步...

    远程对象4.0版本

    最近有个项目要用到远程对象,回头看了看之前的远程对象感觉都不太适用, 老的版本很稳定,但是基于ADO的。服务端若要连接ORACLE之类的还需要安装驱动,客户端本地还得建个access空数据库。 新版本的asio也一直没有...

    利用Camel调用远程对象

    本文将深入探讨如何利用Camel调用远程对象,以实现系统间的高效通信。 Apache Camel 是一个用于构建企业级集成解决方案的工具,它具有丰富的组件库,支持诸如HTTP、JMS、FTP、SMTP等多种协议。通过使用Camel,...

    JAVA远程控制范围对象示例代码

    在Java编程中,远程方法调用(Remote Method Invocation,RMI)是一种强大的技术,它允许一个Java对象在不同的JVM(Java虚拟机)之间进行通信,实现远程对象的调用,仿佛它们都在同一台机器上运行。这个"JAVA远程...

    Hprose 全名是高性能远程对象服务引擎.rar

    Hprose 是高性能远程对象服务引擎(High Performance Remote Object Service Engine)的缩写。 它是一个先进的轻量级的跨语言跨平台面向对象的高性能远程动态通讯中间件。它不仅简单易用,而且功能强大。你只需要...

    高性能远程对象服务通讯中间件源代码.zip

    在IT行业中,高性能远程对象服务通讯中间件是构建分布式系统的关键技术之一。它允许不同的应用程序在不同的网络位置之间共享资源和服务,实现高效的数据通信。中间件作为连接不同系统的桥梁,可以极大地提高系统的可...

    JAVA 高性能远程对象服务引擎代码

    **JAVA 高性能远程对象服务引擎代码** 在Java开发中,远程对象服务(Remote Object Service)是一种关键的技术,它允许程序在不同的网络节点之间共享和调用对象的方法,实现分布式计算。Hprose是一个高性能的跨语言...

    Hprose 全名是高性能远程对象服务引擎 它是一个新型的轻量级跨语言跨平台面向对象的高性能远程动态通讯中间件 它不但易学易用

    Hprose是一款强大的开源软件,其全称是“高性能远程对象服务引擎”。作为一个跨语言、跨平台的轻量级中间件,Hprose被设计用于实现高性能的远程动态通信。在IT领域,中间件扮演着连接不同应用系统的重要角色,而...

    Hprose 全名是高性能远程对象服务引擎

    Hprose,全称为“高性能远程对象服务引擎”,是一款旨在提供高效、轻量级、跨语言、跨平台的远程通信中间件。它被设计用来帮助开发者构建分布式应用程序,使得服务端与客户端之间的通信变得简单而快捷。Hprose 的...

    EJB_最佳实践_改进远程对象设计.rar_J2EE_ejb_分布式

    **EJB最佳实践:改进远程对象设计** 在Java企业版(J2EE)开发中,Enterprise JavaBeans(EJB)是核心组件之一,用于构建可扩展的、安全的、事务处理的分布式应用程序。EJB最佳实践是提升系统性能、可维护性和可...

    HprosePHP高性能远程对象服务RPC引擎

    HprosePHP是一款高度优化的高性能远程对象服务(Remote Procedure Call, RPC)引擎,专为PHP语言设计。RPC框架使得应用程序能够调用远程服务器上的函数或方法,就像它们是本地调用一样,极大地简化了分布式系统开发...

    基于Hprose协议的Python远程对象服务引擎设计源码

    该项目是针对Hprose协议的Python远程对象服务引擎的设计与实现源码,共包含24个文件,包括20个Python源文件、2个Markdown文档、1个Git忽略文件和1个IN文件。该引擎以其轻量级、跨语言和高效性能著称,旨在提供易学...

    C# Hprose轻量级、跨语言、跨平台、无侵入式、高性能动态远程对象调用通讯中间件

    在C#环境中,Hprose提供了轻量级、无侵入式且高性能的解决方案,使得开发人员能够轻松实现远程对象调用。下面将详细阐述Hprose的关键特性和在C#中的使用方法。 首先,Hprose的“轻量级”特性意味着它对项目的影响小...

    一个远程调用对象的例子(VB)

    - 在客户端,使用`Activator.GetObject`创建对远程对象的引用,如`Dim remoteObj As MyRemoteClass = CType(Activator.GetObject(GetType(MyRemoteClass), "tcp://server:port/MyService"), MyRemoteClass)`。...

    flex blazeds glassfish远程对象操作实例4

    工作录制,语言为成都方言 主要实际操作Flex远程对象实现

Global site tag (gtag.js) - Google Analytics