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完成自动部署。
  • 向web project下的WebRoot\WEB-INF\lib目录下添加jar包。这些类可以在刚才Blaze的zip解压文件夹下\tomcat\webapps\blazeds\WEB-INF\lib的所有jar包。亦可将整个lib文件夹覆盖web project中WebRoot\WEB-INF\lib文件夹。
  • 同样将\tomcat\webapps\blazeds\WEB-INF\flex文件夹粘贴到web project中WebRoot\WEB-INF\目录下。
  • 最后将\tomcat\webapps\blazeds\WEB-INF\web.xml文件覆盖web project中WebRoot\WEB-INF\目录下的web.xml。
最后如下图所示:


  • 修改配置文件remoting-config.xml
<?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下\webapps\HelloBlazeDS\WEB-INF\flex\services-config.xml:(蓝色为项目名称,自己对应更改)


原文参见: http://heloowird.duapp.com/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值