Flex JAVA 数据交互 (BlazeDS应用)

本文详细介绍了如何使用BlazeDS实现Java应用程序与浏览器中的Flex应用程序之间的数据交互。步骤包括下载BlazeDS,配置Eclipse项目,设置FLEX项目,以及在Eclipse中配置服务。通过示例代码展示了Flex客户端调用Java服务端的方法。

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

BlazeDS是一个基于服务器的Java远程调用(remoting)和Web消息传递(messaging)技术,它能够使得后台的Java应用程序和运行在浏览器上的Flex应用程序相互通信。
一、下载BlazeDS:
1、网址:http://opensource.adobe.com/wiki/display/blazeds/Release+Builds ;
2、下载“BlazeDS binary distribution”(http://download.macromedia.com/pub/opensource/blazeds/blazeds_bin_3-0-0-544.zip);
    i.将blazeds_bin_3-0-0-544.zip解压,获取blazeds.war文件。
    ii.使用WINRAR将blazeds.war解压成blazeds文件夹,该文件夹有WEB-INF和META-INF文件夹。在WEB-INF文件夹里面有src,lib,flex,classes四个文件夹和一个web.xml文件。其中lib文件夹是开发使用BlazeDS的jar包,flex文件夹包含开发所必需的配置文件。


二、在Eclipse里部署应用
1、在Eclipse里新建一个java web工程。
2、将blazeds_bin_3-0-0-544.zip里面的blazeds\WEB-INF\lib目录下面的jar包添加到java web工程里的WEB-INF/lib目录下。
3、将blazeds_bin_3-0-0-544.zip里面的blazeds\WEB-INF\flex目录拷贝到java web工程里的WEB-INF目录下。
4、将blazeds_bin_3-0-0-544.zip里面的blazeds\WEB-INF\web.xml文件添加到java web工程的WEB-INF目录下。
5、编写java测试程序。代码如下:
package com.hsinghsu.test;

public class User 
{
	public String getUserName(String name) 
	{
        return "My name is "+name;
    } 
}
三、在FLEX中部署应用
1、在FLEX中新建一个FLEX项目。
2、右击FLEX项目,选择属性,在“Flex编译器”选项中,附加的编译器参数下面填写services-config.xml的文件位置,如:
-services "D:\eclipsespace\testBlazeDS\WebContent\WEB-INF\flex\services-config.xml" -locale en_US
3、右击FLEX项目,选择属性,在“Flex服务器”选项中,选择“应用程序服务器类型”为J2EE,使用远程对象访问服务选择为BlazeDS。
   在“根文件夹”中,选择java web的输出文件夹,如:D:\eclipsespace\testBlazeDS\WebContent
   在“根URL”中,填写访问java web服务器的url,如:http://localhost:8686/testBlazeDS
   在“上下文根目录”中,填写java web的根目录,如:/testBlazeDS
   点击验证配置。
   在“输出文件夹”中,填写flex编译后的输出文件夹,如:D:\eclipsespace\testBlazeDS\WebContent\flash
4、编写FLEX测试程序,如下:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" minWidth="955" minHeight="600">

	<mx:Script>
		<![CDATA[
			import mx.controls.Alert;
			import mx.rpc.events.ResultEvent;
			
			protected function send(event:MouseEvent):void
			{
				testRemoteObject.getUserName(txtName.text);
			}
			
			private function faultHandler(event: Event): void 
			{
				Alert.show(event.toString(),"获取数据失败!");
			}
			
			private function resultHandler(event: ResultEvent): void 
			{
				Alert.show("Return:" + event.result.toString());
			}
		]]>
	</mx:Script>
	
	<mx:RemoteObject id="testRemoteObject" destination="user" fault="faultHandler(event)" result="resultHandler(event)"/>

	<mx:HBox>
		<mx:Label text="名称:"/>
		<mx:TextInput id="txtName"/>
		<mx:Button label="测试" click="send(event)"/>
	</mx:HBox>
</mx:Application>

四、在Eclipse里配置服务
在WEB-INF\flex\remoting-config.xml节点里面添加如下代码:
<destination id="user">
        <properties>
            <source>com.hsinghsu.test.User</source>
        </properties>
</destination>

注:
1、destination id与Flex中RemoteObject的destination要保持一致。
2、若报错:FaultEvent fault=[RPC Fault faultString="Cannot create class of type 'com.hsinghsu.test.User'." faultCode="Server.ResourceUnavailable" ,则需要修改java web的java build path修改为testBlazeDS/WebContent/WEB-INF/classes。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值