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

如何使用Flex RemoteObject components 与JAVA交互

    博客分类:
  • FLEX
阅读更多


2008-12-25  |  22:53分类:前端开发   |作者: 奎跃翔 |   <!-- 奎跃翔-->2,012 views

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")]

分享到:
评论
2 楼 hengltyy 2010-08-17  
徐晶鑫 写道
如果java pojo

public class Student

{

private int sid;

private String sname;

private Classes classs //一个对象

   AS文件怎么写 主要是Classes那里怎么写  对象怎么映射呢

请指教 谢谢


Class也是一样的,如果是单数对象就用Class名,如果是集合的话,就用ArrayCollection; as 对象文件的里面,不用写属性的get set方法,只需要将属性设为public,如果你想要修改as对象文件的属性取值方式,可以设置为private,然后用一个public set name() : String{}方法来返回name属性;

package{
   [RemoteClass(alias="com.xxx.xxx.Student")]
    public lass Student
    {

         public var sid : Number;

         private var _sname : String;

         public var classs : Classes;
    
         public set Name(name : String) : void
         {
              _sname = name;
         }
         public get Name () : String
         {
              return _sname;
         }
     } 
}
1 楼 徐晶鑫 2010-01-21  
如果java pojo

public class Student

{

private int sid;

private String sname;

private Classes classs //一个对象

   AS文件怎么写 主要是Classes那里怎么写  对象怎么映射呢

请指教 谢谢

相关推荐

    flex remoteObject封装后和java通信

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

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

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

    Flex与Java的交互

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

    flex remoteobject调用java服务

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

    flex中RemoteObject与java的通信

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

    flex flex和 java交互

    7. **编写Flex客户端代码**:在Flex MXML或ActionScript代码中,使用RemoteObject或WebService组件来调用Java服务的方法。这些组件可以自动处理AMF的序列化和反序列化过程。 8. **测试交互**:运行Flex应用程序,...

    Flex与java交互

    ### Flex与Java交互详解 #### 一、引言 随着技术的发展,前端开发与后端服务之间的交互变得越来越重要。Flex作为一种流行的富互联网应用程序(RIA)框架,与Java结合使用时能够实现强大的功能。本文将详细介绍如何...

    flex学习 flex与java 的交互

    学习如何使用Flex与Java的交互技术,比如使用RemoteObject或WebService组件来调用Java服务的方法,获取或更新服务器端的数据。此外,理解状态管理和数据绑定也是必要的,这可以帮助你更好地控制UI的更新,确保应用的...

    flex4与Java交互.pdf

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

    flex4与Java交互.docx

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

    Flex与java交互 远程调用方式

    标题中的“Flex与Java交互 远程调用方式”指的是在Adobe Flex应用程序中与Java后端进行通信的技术。Flex是一种基于ActionScript的开源框架,用于构建富互联网应用程序(RIA),而Java是后端开发的常用语言。两者之间...

    flex与java的通信 Blazeds remoteObject

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

    Flex与java交互.doc

    - 在Flex项目中,使用`mx:RemoteObject`标签定义与Java服务的连接,指定服务端的方法名和数据类型。 - 在Java端,你需要创建对应的Service接口和服务实现,处理Flex发来的请求并返回数据。 5. **测试和调试**: ...

    flex+java+remoteObject

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

    flex与java通过BlazeDs进行交互

    当所有配置完成后,我们可以启动Tomcat服务器,访问`http://localhost:8080/FlexJava/FlexJava-debug/FlexJava.html`来查看并测试应用程序。如果一切正常,用户在文本框中输入内容,点击按钮,应该能看到一个弹出的...

    Flex前端与Java服务端交互反射机制.doc

    本文主要探讨了使用Flex作为富互联网应用程序(RIA)前端与Java服务端进行交互的反射机制。Flex以其丰富的用户体验和灵活性,与Java的强大功能相结合,形成了高效的应用程序开发模式。BlazeDS作为一种轻量级的服务器...

    Flex与Java数据交互

    Flex与Java数据交互是Web开发中的一个重要话题,它涉及到客户端与服务器端的数据交换技术。Flex是一种基于Adobe AIR和Flash Player运行时的富互联网应用程序(RIA)开发框架,主要用于创建动态、交互性强的用户界面...

    flex与java交互 blaze+cairngorm框架实现用户登录

    标题中的"flex与java交互 blaze+cairngorm框架实现用户登录"是指使用BlazeDS作为数据交换的桥梁,Cairngorm作为前端的架构指导,来实现一个用户登录功能。下面将详细讲解这两个技术以及如何在MySQL数据库中处理登录...

Global site tag (gtag.js) - Google Analytics