Flex JAVA 数据交互 (BlazeDS应用)

来源:互联网 发布:淘宝怎么拆分订单发货 编辑:程序博客网 时间:2024/06/15 22:13
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。
原创粉丝点击