加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

BlazeDS整合java和flex:创建网络应用程序教程

发布时间:2020-12-15 04:20:50 所属栏目:百科 来源:网络整理
导读:何为BlazeDS? BlazeDS 是一个基于服务器的 Java 远程控制 (remoting) 和 Web 消息传递 (messaging) 技术,它能够使得后端的 Java 应用程序和运行在浏览器上的 Adobe Flex 应用程序相互通信。 下面将从 实用、操作层面 讲述如何实现远程控制和消息传递。 1、

何为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下的WebRootWEB-INFlib目录下添加jar包。这些类可以在刚才Blaze的zip解压文件夹下tomcatwebappsblazedsWEB-INFlib的所有jar包。亦可将整个lib文件夹覆盖web project中WebRootWEB-INFlib文件夹。
  • 同样将tomcatwebappsblazedsWEB-INFflex文件夹粘贴到web project中WebRootWEB-INF目录下。
  • 最后将tomcatwebappsblazedsWEB-INFweb.xml文件覆盖web project中WebRootWEB-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下webappsHelloBlazeDSWEB-INFflexservices-config.xml:(蓝色为项目名称,自己对应更改)



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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读