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应用程序进行通信。RemoteObject是Adobe Flex框架的一部分,它允许Flex客户端与服务器端的业务逻辑进行交互,通常是通过AMF(Action Message ...
eclipse3.7 + flash builder 4.5插件 + tomcat6.X调试通过,一个flex remoteobject简单例子(BlazeDS)。实际导入后指定flex server--java settings--blazeds.war的路径
在这个"flex4 remoteobject 多文件上传的例子"中,我们将重点探讨如何使用RemoteObject组件来实现多文件的上传,并且在上传过程中显示进度信息。 首先,我们要理解RemoteObject的工作原理。RemoteObject通过HTTP、...
一个用Flex调用JAVA方法的例子ffffffff
总结起来,使用Flex的`RemoteObject`组件可以简化客户端与服务器之间的通信,通过简单的API调用就能执行远程服务。在实际开发中,结合适当的服务器端框架(如Spring)和数据库操作工具(如Hibernate的DAO),可以...
在Flex项目中使用RemoteObject,首先需要在MXML文件中声明一个RemoteObject实例,例如: ```xml <mx:RemoteObject id="ro" destination="HelloWorld"> ``` 这里的`id`属性定义了引用该RemoteObject实例的变量名,`...
6. **数据转换**:Flex使用AMF来序列化和反序列化数据,这意味着客户端和服务器之间可以交换复杂的数据类型,如对象和数组,而不仅仅是基本类型。 7. **部署和测试**:配置完成后,需要将Flex应用程序部署到服务器...
在Flex中,使用ActionScript动态调用RemoteObject类是一种常见的实现客户端与服务器端交互的方式。通过这种方式,开发者可以在客户端灵活地调用服务器端的服务,并处理返回的数据。下面将详细介绍如何在Flex中使用...
在Flex开发中,为了实现客户端(Flex应用)与服务器端(通常是Java应用)的数据交互,开发者经常使用`RemoteObject`组件。本篇文章将深入探讨如何使用`RemoteObject`与Java进行JSON格式的数据交换,以便更好地理解和...
在本篇博文中,我们将探讨如何使用Flex的RemoteObject来实现客户端与服务器之间的交互。 首先,让我们理解RemoteObject的基本工作原理。RemoteObject类是Flex与服务器之间进行数据交换的桥梁。当你创建一个...
### Flex中RemoteObject与Java的通信 在Flex开发过程中,实现客户端与服务器端的数据交互是一项基本而又关键的任务。其中,`RemoteObject`是Adobe Flex框架提供的一个强大的组件,它允许Flex应用程序通过AMF...
在Flex和Java的集成应用中,RemoteObject是关键的通信组件,它允许Flex客户端与Java后台服务进行数据交换。 RemoteObject是Flex框架中的一个关键组件,它通过AMF(Action Message Format)协议,提供了一种高效、轻...
LCDS(LiveCycle Data Service)是由FDS(Flex Data Service)发展而来,通过LCDS与服务器端通信不但可以大大提高通信的效率,而且还能提供传统B/S结构没有的功能。由于目前LCDS只能通过war包的形式提供给服务端,...
在Red5中,RemoteObject通常与ActionScript Remoting Gateway (AMF) 结合使用,AMF是一种高效的二进制序列化协议,用于在Flex客户端和Red5服务器之间传输数据。 具体实现步骤如下: 1. **配置Red5服务端**:首先,...
Flex与Java的通信是Web应用...在实际项目中,HelloFlexPro可能是一个演示或示例项目,用于展示如何使用Blazeds RemoteObject组件进行Flex与Java的交互。开发者可以通过研究该项目的源码,进一步加深对这一技术的理解。
RemoteObject是Flex与远程服务进行通信的桥梁,它使用AMF(Action Message Format)协议,这是一种高效的数据交换格式,可以快速地传输复杂的数据结构。在Flex3中,你可以配置RemoteObject来连接到特定的服务端点,...
使用 Flex 4.5 访问数据是构建动态应用程序的重要组成部分,它提供了多种技术来实现与后端服务的交互,如 HTTPService、WebService 和 RemoteObject 组件。 Flex 技术在数据访问方面提供了一种不同于传统基于 HTML ...
本文将深入解析如何配置和使用Flex RemoteObject,以便在Java环境中实现高效的远程调用。 首先,理解Flex RemoteObject的核心概念是必要的。RemoteObject是Adobe Flex框架的一部分,它提供了透明的AMF(Action ...