首先来简单介绍一下BlazeDS。 BlaseDS的核心功能包括RPC Services(远程过程调用服务) 和Messaging Service(消息服务)。BlazeDS是一个基于服务器的Java远程调用(remoting)和web消息传递(messaging)技术,使得后台的Java应用程序可以和运行在浏览器上的Flex应用程序能够互相通信。简单来说一个BlazeDS应用包括客户端(Flex或AIR应用程序)和一个服务端(J2EE程序)。BlazeDS在期间起着承上启下的作用,Flex和BlazeDS可以通过RemoteObject,HttpService,WebService三种。而Flex和Java通过BlazeDS通信最常用的是Object形式的,这样不仅能大大简化彼此的操作,而且这种通讯方式通过AMF(AMF协议是ActionMessage Format协议)大大提高了通信速度,提高了用户的体验度。
a
更多BlazeDS的知识,请看细细品味Flex——BlazeDS开发指南 和百科:BlazeDS百科。
下边简单看一个搭建Flex+BlazeDS+J2EE的简单项目。
首先Flex项目和Web项目的整合方法有三种:1,各自独立开发;2Flex项目集成Web功能;3,Web项目集成Flex功能。其实开发出来的结果都是一样的,只不过途径方式不同,需要我们注意的是Flex的各种路径。这里看一下Flex项目集成Web功能的方式。
一,建立一个Flex项目:
Next目录相关设置,然后 Next,点击完成即可
生成项目的结构图:
二,添加J2EE功能:右击Flex项目,进行添加,选择J2EE5.0完成即可。
项目整合完毕,变成了J2EE的项目,看一下目录视图:
三,项目开发,建立一个Java类:
package com.test; public class HelloJavaFlex { public String helloJavaFlex(String name){ System.out.println("Java通信了"); return "Hello" + name; } }
在WebRoot下的flex下services-config.xml中添加:
<destination id="helloJavaFlex"> <properties><source>com.test.HelloJavaFlex</source></properties> </destination>
在FlexHello.mxml中添加如下代码:
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"> <mx:Script> <![CDATA[ import mx.rpc.events.ResultEvent; import mx.controls.Alert; public function remotingHelloJavaFlex():void{ var logNam: String = namInputTxt.text; remoteHello.helloJavaFlex(logNam); remoteHello.addEventListener(ResultEvent.RESULT, getRoHelloRes); } private function getRoHelloRes(e: ResultEvent) :void { Alert.show(e.result.toString()); } ]]> </mx:Script> <mx:RemoteObject destination="helloJavaFlex" id="remoteHello"></mx:RemoteObject> <mx:Button label="JAVA+FLEX通信" click="remotingHelloJavaFlex();" x="121" y="96" fontSize="12" width="209"/> <mx:Label text="姓名:" x="121" y="55" fontSize="12"/> <mx:TextInput id="namInputTxt" x="170" y="55"/> </mx:Application>
然后部署Tomcat,进行右击FlexHello.mxml进行访问,Flex和Java进行了通信。这就是最简单的flex+BlazeDS+J2ee进行通信。
Flex入门(二)——Flex+BlazeDs+J2ee小实例