BlazeDS整合java和flex:创建网络应用程序教程
何为BlazeDS? BlazeDS 是一个基于服务器的 Java 远程控制 (remoting) 和 Web 消息传递 (messaging) 技术,它能够使得后端的 Java 应用程序和运行在浏览器上的 Adobe Flex 应用程序相互通信。 下面将从实用、操作层面讲述如何实现远程控制和消息传递。 1、关于环境的搭建 首先,整个环境至少包括服务器(如tomcat)、java环境(至少需要编译和运行环境)、flex环境(编写、编译前台程序)。可以试着整合这三者,如Eclipse+Tamcat+Flash Builder。然而本文主要讲述如何实现前后台的通信,不在如何搭建环境。 如果不能将三者整合在一起,可以采用MyEclipse+Tomcat,Flash Builder搭配。这里考虑在MyEclipse+Tomcat的环境下,可以直接将java程序部署到服务器端,当作后台程序。如果熟悉tomcat中服务的部署,完全可以手动部署后台程序。 其次,至于版本问题。可以考虑MyEcclipse 10 + Tomcat 7,Flash Builder 4(本文实验的环境),也可是MyEcclipse 8 + Tomcat 6,Flash Builder 4。 下面首先讲java后台的布置,然后是前台的开发。 2、java后台的布置 首先,下载并解构含BlazeDS的zip包。 地址:http://sourceforge.net/adobe/blazeds/wiki/Downloads(turnkey 版本已包含了 Tomcat 服务器-----建议下载此版本) tomcat ----------------- ? 内置的tomcat,如果你没有tomcat的话可以使用它。里面有blazes.war的解压形式。 sampledb------------- ? 示例用的数据库,可以运行startdb.bat来启动数据库。 resource--------------- ? 引用包和配置文件。 docs-------------------- ? 说明文档,类似API文档。 samples.war--------- ? 官方提供的示例,放到tomca的webapps即可使用。 ds-console.war------ ? blazeDS的控制台程序。 blazeds.war----------- ? blazeDS的核心文件、库。 其次,编写java程序和环境的部署。 1)编写java程序。启动MyEclipse,新建java web project(例子中取为HelloBlazeDS),然后新建java class(例子中取为HelloBlazeDS)。 package cn.era.misa;
/**
* HelloBlazeDS Example
* @author: era_misa
* @project: HelloBlazeDS
* @package: cn.era.misa
*/
public class HelloBlazeDS {
public HelloBlazeDS() {
}
public String welcome(String name) {
return name + ",welcome to the BlazeDS world !";
}
}
welcome函数为HelloBlazeDS类的对外接口,可接受参数,并返回相应值。 2)后台环境部署。这一步可以手动部署,当然通过MyEclipse完成自动部署。
最后如下图所示:
<?xml version="1.0" encoding="UTF-8"?> <service id="remoting-service" class="flex.messaging.services.RemotingService"> <adapters> <adapter-definition id="java-object" class="flex.messaging.services.remoting.adapters.JavaAdapter" default="true"/> </adapters> <default-channels> <channel ref="my-amf"/> </default-channels> <!--- 以下为添加的内容 --> <destination id="helloBlazeDSdest"> <!--- id 可以任意指定 --> <properties> <source>cn.era.misa.HelloBlazeDS</source> <!--- source 指定包名、类名 --> </properties> </destination> </service>
然后点击tomcat部署该web project。若未提示错误,则表示后台程序部署无误!
3、Flex前台的设计
1)创建Flex工程。注意点如下图红色框框。然后点击下一步,配置服务器路径。
2)配置服务器路径。根文件夹定位到tomcat的webapps目录下的web project,即在MyEclipse中创建的web project。根URL为tomcat的域名和端口。
3)编写前台代码。
<?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> <mx:RemoteObject <!--id 自己指定,destination 须与remoting-config.xml中的destination id 一致 --> id="helloRemoteObject" destination="helloBlazeDSdest" fault="faultHandler(event)" result="resultHandler(event)" showBusyCursor="true"/> </fx:Declarations> <fx:Script> <![CDATA[ import mx.controls.Alert; import mx.rpc.AsyncToken; import mx.rpc.events.ResultEvent; private function faultHandler(event: Event): void { Alert.show(event.toString(),event.type); } private function resultHandler(event: ResultEvent): void { //event.result是服务器端返回对象 result.text = "Message:" + event.result.toString(); } private function sendHandler(): void { //welcome为HelloBlazeDS类的公有方法 helloRemoteObject.welcome(userName.text); } ]]> </fx:Script> <s:Panel x="10" y="10" width="272" height="148" layout="absolute" title="BlazeDS Remote HelloWorld Sample"> <s:Label x="10" y="22" text="请输入姓名:"/> <s:TextInput x="70" y="19" id="userName"/> <s:Button x="184" y="45" label="发送" click="sendHandler()"/> <s:Text x="10" y="79" id="result"/> </s:Panel> </s:Application>
4、运行程序。添加完配置后,需要重启tomcat。运行上面的flex程序后,输入参数后,点击发送,可以看到服务器端返回的消息。若返回消息正确,则说明BlazeDS整合flex和java成功了。
一般来说,若上述参数配置正确,还需检查flex程序的编译参数(右击工程,选择属性即可看到Flex编译器)是否配置正确。该参数指向tomcat下webappsHelloBlazeDSWEB-INFflexservices-config.xml:(蓝色为项目名称,自己对应更改)
原文参见:
http://heloowird.duapp.com/
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |