[转]flex4 BlazeDS 入门及配置

本文介绍在Flex4中使用BlazeDS进行高效数据交互的方法。BlazeDS支持AMF协议,简化了Flex应用与Java服务器之间的通信。文章通过实例展示了如何配置BlazeDS并实现客户端与服务器端的消息传递。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在flex4中数据交互的方式有很多,开源免费首选BlazeDS。

  Flash Player支持AMF(Action Message Format)协议,这个协议能够缓解由基于文本的协议导致的传输瓶颈问题,能够帮助开发者以更简单的方式与服务器交互,它是一个二进制格式的协议,能够 替代用于传输XML的基于文本的协议而在 HTTP 协议之上交换数据。采用 AMF 的应用中,数据抽象层完全可以省去,客户与服务器间的通讯效率比传统的应用基于文本的协议传输要高得多。

  BlazeDS 中包含了 AMF 的 Java 实现,可以用来与服务器端的 Java 对象远程交互,也可以用来在客户端之间传递消息。开发人员可以借助 BlazeDS 的远程技术简单地调用 POJO、Spring 服务或EJB方法。开发人员可以通过其消息系统从客户端向服务器端发送消息,当然也可从服务器端向客户端发送消息。

  BlazeDS 也可以与其他一些消息系统结合使用,比如JMS、ActiveMQ。由于其远程技术与消息系统采用的方式是在 HTTP 协议上传输 AMF 数据,BlazeDS 因此在性能上拥有很大优势,同时也避免了额外的数据抽象层的处理工作。BlazeDS 在很多基于 Java 的应用服务器环境下都能正常工作,这些服务器包括 Tomcat、WebSphere、WebLogic、JBoss 以及 ColdFusion。此外,无论是 web(在 Flash Player 中运行)还是桌面(在Adobe AIR下运行)的 Flex 应用程序中,BlazeDS 的使用都很简单。
简单来说 BlazeDS是一个基于服务器的 Java 远程调用和 Web 消息传递技术,它能够让后台的 Java 应用程序和运行在浏览器上的 Flex 应用程序相互通信。BlazeDS 是 Adobe 的一个开源项目,里面提供了 Java 封装 AMF3 格式的方法。

 

开始:

1需要 Eclipse tomcat FB4 BlazeDS

2配置服务器端 Eclipse新建一个动态web工程,此时注意web的Context root是/目录

3导入BlazeDS默认包blazeds下的2个文件夹 META-INF  WEB-INF

4写入测试的类

package my.test;

public class HelloWorld {

	public HelloWorld() {

	}

	public String getString() {
		return "wo cheng gong le";
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub

	}

}

 

5配置测试的类:在 remoting-config.xml下写入

	<destination id="helloWorld">
		<properties>
			<!-- 这里要写完整路径:包名 + 类名 -->
			<source>my.test.HelloWorld</source>
		</properties>
	</destination>

6启动tomcat

7配置客户端

0001

 

客户端代码:

<?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" width="387" height="354">
	
	<fx:Script>
		<![CDATA[
			import mx.rpc.events.FaultEvent;
			import mx.controls.Alert;
			import mx.rpc.events.ResultEvent;
			       
			private function resultHandler(event:ResultEvent):void {
				Alert.show(event.result.toString(), "成功");
			}
			       
			private function faultHandler(event:FaultEvent):void {
				Alert.show(event.fault.toString(), "失败");
			}
			
		]]>
	</fx:Script>
	
	
	<fx:Declarations>
		<!-- 将非可视元素(例如服务、值对象)放在此处 -->
		
		<mx:RemoteObject id="remoteObject"
						 destination="helloWorld" result="resultHandler(event)" fault="faultHandler(event)"/>
		
	</fx:Declarations>
	
	
	<mx:Button label="发送消息" click="remoteObject.getString()" x="256.5" y="197"/>

</s:Application>

 

成功:

0002

转载于:https://www.cnblogs.com/yanxi/p/3155074.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值