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

flex 之RemoteObject + blazeds 与java服务端通信

    博客分类:
  • Flex
阅读更多
一,blazeds 服务端搭建
1)在eclipse中创建web project
2)下载blazeds.zip
3)把解压后的WEB-INF 和 META-INF 覆盖创建的web project
4)在web project中创建一个远程处理的java 类如:
package net.fleet;
import java.util.List;
import flex.messaging.io.ArrayList;

public class HelloWorld {
	public String say(String name) {
		System.out.println("funck you fuck you");
		return "hello " + name;
	}

	public List<Student> getStudent() {
		List<Student> students = new ArrayList();

		Student student = new Student("chenchaoyang", "635383679@qq.com");
		Student student2 = new Student("chenchaoyang", "635383679@qq.com");

		students.add(student);
		students.add(student2);

		return students;
	}
}

Studetn类就不再次赘述了。
5)配置远程处理java类
WebRoot\WEB-INF\flex\remoting-config.xml在这个文件中添加:
    <destination id="product" channels="my-amf">
        <properties>
            <source>net.fleet.HelloWorld</source>
        </properties>
    </destination>

6)部署项目到tomcat,启动tomcat。至此服务端已经配置完毕。

二:客户端访问两种方式:
1,用标签访问
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
			   xmlns:s="library://ns.adobe.com/flex/spark" 
			   xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
	<fx:Declarations>
		<!-- 将非可视元素(例如服务、值对象)放在此处 -->
		<s:RemoteObject id="server" destination="product" result="server_resultHandler(event)" fault="server_faultHandler(event)"/>
		
		<s:RemoteObject id="server2" destination="product" result="getstudent_resultHandler(event)" fault="getstudent_faultHandler(event)"/>
		
	</fx:Declarations>
	<fx:Script>
		<![CDATA[
			import mx.collections.ArrayCollection;
			import mx.controls.Alert;
			import mx.rpc.events.FaultEvent;
			import mx.rpc.events.ResultEvent;
			
			protected function server_resultHandler(event:ResultEvent):void
			{
			  Alert.show("远程调用成功。。。。" + event.result,"提示");
			}
			
			protected function server_faultHandler(event:FaultEvent):void
			{
			  Alert.show("远程调用失败。。。。" + event.fault.toString(),"提示");
			}
			
			protected function button1_clickHandler(event:MouseEvent):void
			{
			  server.say("chenchaoyang!");
			}
			
			protected function getstudent_resultHandler(event:ResultEvent):void
			{
				Alert.show("远程调用成功。。。。" + event.result,"提示");
				
				dg.dataProvider = event.result;
			}
			
			protected function getstudent_faultHandler(event:FaultEvent):void
			{
				Alert.show("远程调用失败。。。。" + event.fault.toString(),"提示");
			}
			protected function getstudent_clickHandler(event:MouseEvent):void
			{
				server2.getStudent();
			}
		]]>
	</fx:Script>
	
	<mx:DataGrid y="156" width="674" height="357" horizontalCenter="0" id="dg">  
		<mx:columns>  
			<mx:DataGridColumn headerText="ID" dataField="name"/>  
			<mx:DataGridColumn headerText="Name" dataField="email"/>  
		</mx:columns>  
	</mx:DataGrid>
	
	<s:Button x="390" y="198" width="214" height="93" label="按钮" click="button1_clickHandler(event)"/>
	
	<s:Button x="490" y="298" width="214" height="93" label="获取学生列表" click="getstudent_clickHandler(event)"/>
</s:Application>


2,手动创建remoteObject对象,并设置其相关属性访问
package com.superwulei.model
{
	import com.superwulei.model.vo.UserVO;
	import mx.collections.ArrayCollection;
	import mx.rpc.remoting.RemoteObject;
	import org.puremvc.as3.patterns.proxy.Proxy;
	
	import mx.collections.ArrayCollection;
	import mx.controls.Alert;
	import mx.messaging.Channel;
	import mx.messaging.ChannelSet;
	import mx.messaging.channels.AMFChannel;
	import mx.rpc.events.FaultEvent;
	import mx.rpc.events.ResultEvent;
	import mx.rpc.remoting.RemoteObject;
	import mx.utils.ObjectProxy;

	public class UserProxy extends Proxy
	{
		private static var channel:Channel;
		
		public static const NAME:String = 'UserProxy';
		
		public function UserProxy()
		{
			super(NAME,new ArrayCollection());
		}
		
		public function get users():ArrayCollection{
			return data as ArrayCollection;
		}
		
		/* 添加项 */
		public function addItem(item:Object):void{
			
			if(channel == null)
			{
				channel = new AMFChannel("my-amf", "http://localhost:8080/111/messagebroker/amf");
			}
			var service:RemoteObject = new RemoteObject();
			var cs:ChannelSet = new ChannelSet();
			cs.addChannel(channel);
			service.channelSet = cs;
			service.destination = "product";
			service.addEventListener(FaultEvent.FAULT,showError);
			
			service.say("chenchaoyang!");
			
			users.addItem(item);
		}
		
		/* 删除项 */
		public function deleteItem(item:Object):void{
			var user:UserVO = item as UserVO;
			for(var i:int = 0; i < users.length; i++){
				if(users[i].email == user.email){
					users.removeItemAt(i);
				}
			}
		}
		
		private static function showError(e:FaultEvent):void {
			Alert.show(String(e.fault.message), "错误");
		}
	}
}



分享到:
评论

相关推荐

    Flex+java+blazeds

    ### Flex与Java交互技术详解:BlazeDS应用实践 #### 技术背景及介绍 随着互联网技术的发展,前后端分离架构越来越受到开发者的青睐。在这样的背景下,如何实现富客户端与后端服务的有效通信变得尤为重要。Adobe ...

    Flex+JAVA+BlazeDS开发环境配置(Java工程和Flex工程独立).pdf

    在Flex+Java+BlazeDS的开发环境中,开发者需要分别配置Java工程和Flex工程,实现两者的独立开发和高效集成。根据文件提供的信息,下面详细展开相关知识点。 首先,Flex是一种设计用于开发富互联网应用(Rich ...

    java+flex+blazeds配合例子

    在与BlazeDS配合使用时,Flex负责展示由Java后台生成的数据,并通过AMF与Java进行双向通信。 BlazeDS是Adobe Flex框架的一部分,它允许Flex客户端与Java服务器进行实时双向通信。BlazeDS支持多种协议,如HTTP、RTMP...

    Java+Flex+BlazeDS HelloWorld例子

    BlazeDS是Java服务器与Flex客户端间实时通信的中间件,它支持HTTP、RTMP和WebSockets等协议,允许双向通信,使得服务器可以推送数据到客户端,而不仅仅是响应客户端请求。 2. **Java后端**: 在Java端,我们需要...

    flex与java的通信 Blazeds remoteObject

    综上所述,Blazeds RemoteObject为Flex与Java的通信提供了强大且便捷的解决方案。通过理解AMF协议、配置RemoteObject以及处理数据转换和异常,开发者可以高效地构建跨平台的RIA应用。在实际项目中,HelloFlexPro可能...

    flex + blazeDs

    BlazeDS则是Adobe提供的一个免费的数据服务组件,它允许Flex应用与Java服务器进行双向通信,通过AMF(Action Message Format)协议高效地传输数据。 在Flex中,开发者可以使用MXML和ActionScript来构建用户界面,并...

    Flex通信-Java服务端通信实例

    Flex通信-Java服务端通信实例主要探讨的是在Web开发中,如何使用Adobe Flex与Java后端进行交互。Flex是一款强大的富互联网应用程序(RIA)开发工具,它可以创建动态、交互式的用户界面,而Java则通常作为服务器端的...

    java_JDBC+Blazeds_Demo

    【Java JDBC + Blazeds Demo】是一个典型的Java与Flex之间的数据交互示例,它结合了Java的数据库连接能力(JDBC)与Adobe的BlazeDS技术,用于构建富互联网应用程序(RIA)。BlazeDS是Adobe提供的一个开源项目,它...

    Flex + LCDS(Blazeds) + Java 入门教程

    【Flex + LCDS(Blazeds) + Java 入门教程】是一篇旨在引导初学者了解如何构建基于Flex、LCDS(LiveCycle Data Services)和Java的开发环境,并实现它们的集成与通信的教程。Flex是一种用于创建富互联网应用程序(RIA...

    使用BlazeDS实现Java和Flex通信

    ### 使用BlazeDS实现Java和Flex通信 #### 一、BlazeDS简介 BlazeDS是一种基于服务器端的Java远程调用(Remoting)及Web...总之,使用BlazeDS可以有效提升RIA应用的性能和用户体验,是连接Java与Flex的有力工具之一。

    51CTO下载-使用BlazeDS实现Java和Flex通信(PDF+源码

    BlazeDS是Adobe公司推出的一款开源项目,它主要用于在Java后端服务器与Flex前端客户端之间建立数据通信。本文将深入探讨如何使用BlazeDS来实现Java和Flex之间的通信,以及这个过程中涉及的关键技术和实践步骤。 1. ...

    flex 之java+hibernate+Spring完整配置文档

    - BlazeDS允许Flex客户端通过RemoteObject调用Java服务端的方法,实现前后端的双向通信。 - BlazeDS可部署在多种Web应用服务器上,如Tomcat,提供AMF管道来连接Flex和Spring。 5. **集成Flex、Spring和Hibernate*...

    Flex + LCDS + Java 入门教程

    这涉及到ActionScript的RemoteObject组件,它是Flex与服务器进行通信的主要工具。同时,我们还将讨论数据管理和状态管理,如使用ArrayCollection和ObjectProxy处理数据,以及维护用户会话状态。 此外,教程还会涉及...

    使用BlazeDS实现flex与java 整合

    BlazeDS是Adobe公司推出的一款开源的服务器端技术,它主要的作用是为Flex客户端与Java后端应用提供数据集成和实时通信。BlazeDS通过AMF(Action Message Format)协议,实现了高性能、低延迟的数据传输,使得Flex...

    flex连接java服务端

    标题中的“flex连接java服务端”指的是使用Adobe Flex技术与Java服务器进行通信的过程。Flex是一种开源的、基于ActionScript的富互联网应用(RIA)开发框架,常用于构建交互性强的Web应用程序。而Java服务端则通常指...

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

    BlazeDS作为一种轻量级的服务器端组件,扮演着Flex与Java之间通信的重要角色。 BlazeDS是Adobe LiveCycle Data Services (LCDS)的一个分支,它提供了一种基于AMF(Action Message Format)的数据传输协议,使得Flex...

    Flex+BlazeDS

    以上步骤详细介绍了如何在 MyEclipse 6.5 环境下,结合 Flex 3.0 插件和 BlazeDS 3.0.1 实现 Flex 客户端与 Java 服务端的交互。遵循这些步骤,可以帮助开发者快速搭建起基于 Flex 和 BlazeDS 的应用程序框架。

    flex4与Java通信实例

    在Flex中,RemoteObject组件用于与Java服务端的普通类进行通信。首先,我们需要创建一个Java类,例如`SimpleService`,包含一个可供调用的方法,如`sayHello`。然后,在BlazeDS配置文件`remoting-config.xml`中,...

Global site tag (gtag.js) - Google Analytics