| 使用BEA Workshop Studio的Flex消息传递 |
|
| 作者是 JonRose-080424 | |
| 2008-04-25 22:54:59 | |
|
摘要 本教程演示了如何使用Flex LiveCycle Data Services Express (DS)消息传递功能在使用BEA Workshop Studio (Flex bundle)的Flex应用程序中实现“数据推送”。我的目标是开发一个小型Flex消息传递应用程序发送和接收消息。 Flex消息传递简介 本教程演示了如何在Flex应用程序中使用消息传递。“消息传递”可算是相当普通的一个词。但请看 Flex文档 是怎样定义这个词的: 消息传递系统允许各应用程序进行对等异步通信,方法是通过Message Service收发数据(或消息)包。消息通常由消息头和消息体组成。消息头包含标识符和路由信息。消息体包含应用程序数据。 因此,我们将构建这样一个应用程序,它允许通过DS消息服务向我们的Flex客户端应用程序异步发送数据。以下是一些主要的DS消息传递术语:
DS提供了许多有用的特性,包括:持久的消息队列、安全性和外部消息系统集成。DS将部署为WAR文件,它可以运行在任何Java EE Servlet容器(像Apache Tomcat或BEA WebLogic)中。ActionScriptAdapter消息提供者不要求任何额外的Java EE特性。本教程将介绍实现一个非常基本的消息传递应用程序的设置和配置。 软件需求 本教程使用下列软件产品构建和运行消息传递应用程序: 应用程序概述 在本教程中,您将学习如何创建简单的Flex生产者和使用者客户端。Flex用户接口运行于Flash Player客户端,而DS是服务器端网关,向Flex客户端应用程序发送消息并接收来自Flex客户端应用程序的消息。 多个Flex客户端可以发送和接收来自同一消息队列的消息。生产者用户接口将允许您向收信方发送消息,而使用者的用户接口将接收创建的消息;因此,当不含任何用户轮询代码的消息显示在屏幕上时,这就演示了DS的“数据推送”特性。 图1给出了源文件一览。具体来说,我将重点关注:
图1. 已完成的应用程序中的消息传递文件一览(单击放大图片) 现在,我将介绍如何创建应用程序。 构建应用程序的步骤 以下内容将介绍Flex项目的创建和应用程序的配置,以及应用程序的部署和运行。 设置IDE 首先,下载和安装软件需求一节中提到的软件,并启动BEA Workshop Studio。接着,导入flex.war文件,并创建新的Flex Server项目。(此文件随DS安装;DS的下载链接请参见软件需求一节。) 现在,选择File→Import,然后选择WAR文件选项。指定随DS提供的flex.war文件的位置(在windows中默认位置是:C:\lcds\flex.war)。将Web项目名称指定为flex_server。 最后,选择Finish。 图2. 从DS导入flex.war文件 配置Flex Server和应用程序 接下来,我们将配置flex_server消息传递应用程序。设置消息传递服务器端应用程序包括消息通道、端点、收信方和适配器的配置。
<services>
<channel-definition id="my-polling-amf" class="mx.messaging.channels.AMFChannel"> 下面是完整的services-config.xml文件,供您参考: <?xml version="1.0" encoding="UTF-8"?>
<service id="message-service"
<destination id="simple-topic"> 下面是完整的messaging-config.xml文件,供您参考: <?xml version="1.0" encoding="UTF-8"?> 创建服务器 现在我们可以创建运行应用程序的服务器:
图3. 选择运行应用程序的服务器
图4. 指定Tomcat服务器位置
图5. 添加项目到 Configured项目列表 客户端应用程序 现在,我们将创建消息传递客户端应用程序。
图6. 在BEA Workshop中创建Flex Project
图7. 配置 Flex Client应用程序数据访问方式
图8. 配置Flex Server信息
图9. 编辑project名称并结束。 现在,我们需要创建客户端。更新项目创建的flex_client.mxml页面,如下所示:
<?xml version="1.0" encoding="iso-8859-1"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns="*"
pageTitle="Flex Messaging - Example Application"
creationComplete="mySubscriber.subscribe()">
<!-- Messaging Declarations -->
<mx:Producer id="myPublisher" destination="simple-topic" />
<mx:Consumer id="mySubscriber" destination="simple-topic"
message="receiveMessage(event)" />
<!-- UI Declarations -->
<mx:Panel title="Incoming Messages Panel">
<mx:TextArea id="output" backgroundColor="#eeeeee"
width="385" height="220" />
</mx:Panel>
<mx:Panel title="Input Panel (type your text and click enter)">
<mx:TextInput id="input" width="385" enter="sendMessage()" />
</mx:Panel>
<!-- Event-Handling Script -->
<mx:Script>
<![CDATA[
import mx.messaging.events.MessageEvent;
import mx.messaging.messages.AsyncMessage;
private function sendMessage():void
{
var msg:AsyncMessage = new AsyncMessage();
msg.body = input.text;
myPublisher.send(msg);
input.text = "";
}
private function receiveMessage(msgEvent:MessageEvent):void
{
var msg:AsyncMessage = AsyncMessage(msgEvent.message);
output.text += msg.body + "\n";
}
]]>
</mx:Script>
</mx:Application>
flex_client.mxml中代码的作用:
运行应用程序 现在来运行这个应用程序!启动服务器:
图10. 启动Tomcat服务器
图11. 运行flex_client.mxml页 使用应用程序 要使用应用程序,请在Input Panel中输入您的消息文本,然后按下回车键。这样,消息将被发送到flex_server应用程序中的simple-topic收信方。 Consumer对象mySubscriber将从simple-topic收信方接收消息,然后调用receiveMessage函数在Incoming Messages Panel中显示消息。 图12. Flex Messaging应用程序 源代码 下载本文中的源代码:
结束语 您已经构建了一个基本的Flex消息传递应用程序,它可以使用BEA Workshop Studio收发消息。DS可以提供消息传递功能,并且非常灵活。它允许您用极少的代码或配置实现异步应用程序通信。除了能够使用DS特定的消息传递之外,DS还支持Flex应用程序参与JMS消息传递,使异构系统的集成更加方便。 自此,您可以参考 文档 学习更高级的Flex消息传递配置和使用方法。 参考资料
原文出处:http://dev2dev.bea.com/pub/a/2008/01/flex-messaging-workshop.html |
|
| 最近更新 ( 2008-04-25 22:54:59 ) |













