`
NewTamato
  • 浏览: 103213 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

如何使用Flex RemoteObject components

阅读更多

Flex 支持多种与服务器端的通讯方式,包括 remote socket 等高级数据通讯方式。   remote 采用 amf action message format )协议。 amt 是一种二进制格式,专用于 as 和服务器端通讯,比 http 通讯要快很多,而且支持多种数据类型,如 java .net,php 等。本文将介绍如何使用 Flex RemoteObject components 调用服务器端 java 对象的方法。

Flex 客户端使用 RemoteObject

mxml 中声明一个 id ro RemoteObject ,在 as 中可以通过 ro 引用 RemoteObject 对象, destination 是服务器端暴露的 java 服务对象, Method name java 服务对象中的方法, result 是访问服务器方法的回调函数。本例中是使用 RemoteObject 访问服务器端 HelloWorld sayHello 方法。

testHelloWorld.mxml 代码

<?xml version=”1.0″ encoding=”utf-8″?>

<mx:Application xmlns:mx=”http://www.adobe.com/2006/mxml”>

   <mx:Script>

     <![CDATA[

       import mx.controls.Alert;

import mx.rpc.events.ResultEvent;

[Bindable]  

private var memberResult:Object;

     

private function say():void{

var user:User=new User();

user.setName(n.text);

user.setId(”testId”);

ro.sayHello(user);

}
public function handleResult(event:ResultEvent):void { 

            target.text=event.result as String;

 } 

]]>

</mx:Script>

<mx:RemoteObject id=”ro” destination=”HelloWorld”>

<mx:method name=” sayHello ” result=” handleResult (event)”/>

<mx:RemoteObject> 

<mx:TextInput id=”n” change=”say()”/>  

<mx:Label id=”target”/>  

</mx:Application>

 

User.as 代码

package {

[RemoteClass(alias="cn.com. remote.test.User")]
public class User {  

public var name:String;

public var id:String;

 

public function getName():String{

return name;

}

public function setName(name:String ):void {

this.name = name;

}

public function getId():String {

return id;

}

public function setId(id:String):void {

this.id = id;

}

}

}

定义服务器端 java 对象

HelloWorld.java 代码

package cn.com. remote.test;

 

public class HelloWorld {

public String sayHello(String name){

System.out.println(”**********sayHello(String name) in*************”);

System.out.println(”hello,”+name);

return “hello,”+name;

}

 

public User getUser(String name){

System.out.println(”**********getUser in*************”);

return new User(name,name+”Id”);

}

}

 

User.java 代码

package cn.com. remote.test;

 

public class User {

private String name;

private String id;

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getId() {

return id;

}

public void setId(String id) {

this.id = id;

}

}

配置服务器端 destination

使用 RemoteObject 与服务器端通讯,需要用到 Flex Date Services ,本文使用的是 BlazeDS server BlazeDS 的使用本文不做详细说明,可参看 http://opensource.adobe.com/wiki/display/blazeds/BlazeDS/

remoting-config.xml 中配置 destination ,增加如下代码

    < destination id = helloWorld >

       < properties >

           < source > cn.com. remote.test .helloWorld </ source >

           < factory > springFactory </ factory >

       </ properties >

    </ destination >

As 对象与 java 对象的转换

as 中调用 ro.sayHello 时,传入一个 as 对象 user ,服务器端将会把 user 对象转换为 java 对象 user 。同样,如果服务器端方法 return 的是 java User 对象, as 接收到的将是 as User 对象。 [RemoteClass(alias="cn.com. remote.test.User")] 声明了 As user 对象与 java User 对象的对应关系。下面是基础类型或常用类的对应关系图。

需要注意到问题

flex remote 传递 object 参数和接受返回的 dojo 对象,应注意以下问题:

1.as 对象属性必须为 public

2.remote 调用的 java 方法时,参数不能作为区别不同方法的依据,也就是说, java 方法不

能重名

3.dojo 对象,必须有无参构造函数

4.as 对象需加 [RemoteClass(alias="cn.com. remote.test.User")]

 

分享到:
评论

相关推荐

    flex remoteObject封装后和java通信

    在本文中,我们将深入探讨如何使用Flex中的RemoteObject组件封装后与Java应用程序进行通信。RemoteObject是Adobe Flex框架的一部分,它允许Flex客户端与服务器端的业务逻辑进行交互,通常是通过AMF(Action Message ...

    flex remoteobject调用java服务

    eclipse3.7 + flash builder 4.5插件 + tomcat6.X调试通过,一个flex remoteobject简单例子(BlazeDS)。实际导入后指定flex server--java settings--blazeds.war的路径

    flex4 remoteobject 多文件上传的例子

    在这个"flex4 remoteobject 多文件上传的例子"中,我们将重点探讨如何使用RemoteObject组件来实现多文件的上传,并且在上传过程中显示进度信息。 首先,我们要理解RemoteObject的工作原理。RemoteObject通过HTTP、...

    Flex BlaseDS remoteObject 例子(这个是错的,大家不要下了,SORRY)

    一个用Flex调用JAVA方法的例子ffffffff

    FLEX和使用RemoteObject和后台通信

    总结起来,使用Flex的`RemoteObject`组件可以简化客户端与服务器之间的通信,通过简单的API调用就能执行远程服务。在实际开发中,结合适当的服务器端框架(如Spring)和数据库操作工具(如Hibernate的DAO),可以...

    flex4使用RemoteObject学习

    在Flex项目中使用RemoteObject,首先需要在MXML文件中声明一个RemoteObject实例,例如: ```xml &lt;mx:RemoteObject id="ro" destination="HelloWorld"&gt; ``` 这里的`id`属性定义了引用该RemoteObject实例的变量名,`...

    flex访问remoteObject实例

    6. **数据转换**:Flex使用AMF来序列化和反序列化数据,这意味着客户端和服务器之间可以交换复杂的数据类型,如对象和数组,而不仅仅是基本类型。 7. **部署和测试**:配置完成后,需要将Flex应用程序部署到服务器...

    flex中actionscript动态调用remoteobject类

    在Flex中,使用ActionScript动态调用RemoteObject类是一种常见的实现客户端与服务器端交互的方式。通过这种方式,开发者可以在客户端灵活地调用服务器端的服务,并处理返回的数据。下面将详细介绍如何在Flex中使用...

    flex使用 RemoteObject 与java进行json格式的数据交互

    在Flex开发中,为了实现客户端(Flex应用)与服务器端(通常是Java应用)的数据交互,开发者经常使用`RemoteObject`组件。本篇文章将深入探讨如何使用`RemoteObject`与Java进行JSON格式的数据交换,以便更好地理解和...

    Flex的remoteObject例子

    在本篇博文中,我们将探讨如何使用Flex的RemoteObject来实现客户端与服务器之间的交互。 首先,让我们理解RemoteObject的基本工作原理。RemoteObject类是Flex与服务器之间进行数据交换的桥梁。当你创建一个...

    flex中RemoteObject与java的通信

    ### Flex中RemoteObject与Java的通信 在Flex开发过程中,实现客户端与服务器端的数据交互是一项基本而又关键的任务。其中,`RemoteObject`是Adobe Flex框架提供的一个强大的组件,它允许Flex应用程序通过AMF...

    flex+java+remoteObject

    在Flex和Java的集成应用中,RemoteObject是关键的通信组件,它允许Flex客户端与Java后台服务进行数据交换。 RemoteObject是Flex框架中的一个关键组件,它通过AMF(Action Message Format)协议,提供了一种高效、轻...

    flex remoteobject demo

    LCDS(LiveCycle Data Service)是由FDS(Flex Data Service)发展而来,通过LCDS与服务器端通信不但可以大大提高通信的效率,而且还能提供传统B/S结构没有的功能。由于目前LCDS只能通过war包的形式提供给服务端,...

    red5中使用remoteObject

    在Red5中,RemoteObject通常与ActionScript Remoting Gateway (AMF) 结合使用,AMF是一种高效的二进制序列化协议,用于在Flex客户端和Red5服务器之间传输数据。 具体实现步骤如下: 1. **配置Red5服务端**:首先,...

    flex与java的通信 Blazeds remoteObject

    Flex与Java的通信是Web应用...在实际项目中,HelloFlexPro可能是一个演示或示例项目,用于展示如何使用Blazeds RemoteObject组件进行Flex与Java的交互。开发者可以通过研究该项目的源码,进一步加深对这一技术的理解。

    flex3(remoteobject+datagrid+.....)+java+oracle源代码

    RemoteObject是Flex与远程服务进行通信的桥梁,它使用AMF(Action Message Format)协议,这是一种高效的数据交换格式,可以快速地传输复杂的数据结构。在Flex3中,你可以配置RemoteObject来连接到特定的服务端点,...

    使用 Flex 4.5 访问数据

    使用 Flex 4.5 访问数据是构建动态应用程序的重要组成部分,它提供了多种技术来实现与后端服务的交互,如 HTTPService、WebService 和 RemoteObject 组件。 Flex 技术在数据访问方面提供了一种不同于传统基于 HTML ...

    java 中Flex开发RemoteOject 配置详解

    本文将深入解析如何配置和使用Flex RemoteObject,以便在Java环境中实现高效的远程调用。 首先,理解Flex RemoteObject的核心概念是必要的。RemoteObject是Adobe Flex框架的一部分,它提供了透明的AMF(Action ...

Global site tag (gtag.js) - Google Analytics