- 浏览: 78369 次
- 性别:
- 来自: 成都
文章分类
最新评论
-
兩ting:
说实话,我没有装成功。。。
Ubuntu上搭建Flex4的开发环境 -
chenzhou123520:
写得很好,赞一个,不过指出一个小错误引用表 2. IoSess ...
Mina服务器开发入门基础,实例讲解 -
jinx3166:
受益良多!
关于flex不能移除监听器总结 -
兩ting:
Flex太强大了,不过会的人不是很多.精通的人就更少了
Ubuntu上搭建Flex4的开发环境 -
liminjun:
你们平时开发也是用Ubuntu吗?Flex做企业项目还是有很大 ...
Ubuntu上搭建Flex4的开发环境
MessageBroker 我们称他为信息经纪人,它职责就是把messages 发给到services 就是我们的程序服务,它是BlazeDs在服务器上的核心。endpoint 处理完一个request,也即是把messages 从request抽取出来,然后传给MessageBroker ,然后MessageBroker 就检测这个消息的destination ,接着把它传给它想到的服务目的地。假若我们的服务有安全保护,MessageBroker 要先运行authentication ,authentication 是在信息传递前先做check。你要在你BlazeDS WEB应用WEB-INF/web.xml 文件中配置你的MessageBroker。
Endpoints
BlazeDS 基于servlet的Endpoints(端点)是在J2EE servlet container中的,这就意味着 servlet 为 endpoints操纵着 the I/O and HTTP sessions ,实际上Endpoints被MessageBrokerServlet控制,除了MessageBrokerServlet,我们的 J2EE server还在web.xml文件中注册一个 HTTP session 监听者,以使BlazeDS 有监听的属性,和支持。BlazeDS Flex 客户端用channels (通道)和endpoints通信,在服务器上,channels 和endpoints有一对一的对应关系,也许因为他们两个用的数据格式要一样。比如一个channels 用 AMF消息格式,如AMFChannel格式,必须有一个也用这种格式的endpoints与它配对。同样一个用了AMFX 格式的channels 也要求有一个同样格式的endpoint。你要在你BlazeDS WEB应用WEB-INF/flex directory的 services-config.xml 文件中配置你的endpoints。
channels
channels 是客户端的对象,它把FLEX组件和 BlazeDS server端的勾通封装起来。channels和与之在blaze Server上对应的endpoint通信。你可以在services-config.xml 文件中配置channel的各个属性和对应的endpoint。
如下channel 定义代码:
你就创建了一个AMFChannel与服务器端的AMFEndpoint的通信channel。
其中endpoint URL 是endpoint暴露给外边可以访问的地址。channel用它和endpoint交互。这个url必须是唯一的,在所有服务器上暴露的endpoints中,这个url值指向MessageBrokerServlet。
怎样给flex component分配channel
flex components 用ChannelSet设定channel,它里面可以包括多个channel,去和server 交互。你可以选择自动和手动分配channel 给flex 组件。假如你在编译你的MXML文件时,把你的compiler 配置上 -services 选 项让它指向services-config.xml 文件,那么你的组件(如RemoteObject, HTTPService等)就自动分配一个配置好的channel实例, 这个channel是根据你在services-config.xml 文件中定义好的包括destination。第二种情况如果你不想在你的compiler 中设置什么-services
选项,你可以在 MXML or ActionScript中手动创建你的channel,然后把它分配给你的flex components。如果你也不想自己配置channel,Application-level 默认channels这时就会被用到。
如下代码自己手动定义channel
in mxml:
in ActionScript:
注意当你在客户端分配设置了channel 并指定了channel type 和 endpoint URL,但并没有
指定handles 请求的endpoint class。所以这时你还要在services-config.xml中定义你用的这个channel,指明它的url 用到的endpoint class。
把channel和endpoint分配给destination
(前面不是提到在services-config.xml中配置了一系列 的<channels><channel/></channels>吗,然后下面就可以在message- config.xml 中引用配置好的channel进行通信了。原文是在service-config.xml中配置的,这点也可以配在message-config.xml 中)
我们用channel和endpoint目的就是把我们的从client传过来的东西送到目的地destination。说到给destination分channel我们可以分 以下几中情况。
1,在所有services中的大多数destinations用同样的channels。我们可能定义应用级别(application-level)默认channels在services-config.xml文件中。如
这样所有没定义channel的destinations就会用上面定义的默认channel,当然destinations和services都可以重载默认 channel,通过指明自己的channel。
2.在一个service中的大多数destinations用同样的channels。我们可以定义服务级别(service-level )默认channels在services-config.xml文件中。如
这样以来,在一个service中没有指定channel的destination就会用到本服务内的默认channels.
3.一个destination 定义自己的channel.代码如下:
BlazeDs 基于消息的framework
blazeds 是利用基于消息的框架完成数据在客户端和服务器之间来回传递的。实际上blazeds用二种最重要的数据交换模式。第一种就是请求响应模式。PRC就是用 的这种模式,这个我前几天自己摸个CRUD例子出来。推销一下:http://download.csdn.net/source/1527797(这个 例子要求你自己要写个Uint bean,另外要把你的Flex编译器设置-services 选项并指向services-config.xml文件)。
第二种模式就是发布订阅模式。在这模式下,服务器把published的信息发送给一系列订阅了这些信息的customer。举例说Messaging Service就是用这种方式把data发给对data感兴趣的client,当然Messaging Service也用 request-response pattern去与client玩。
发表评论
-
BlazeDS的功能原理及配置实例
2013-05-01 23:26 1185BlazeDS Test Drive里面示例了主要的功能: ... -
Flex与Severlet(Jsp)通信传递中文参数乱码问题的解决
2013-02-19 15:51 723Java代码 var url ... -
Java与Flex建立Socket连接
2013-02-17 23:42 893Socket与其他的通信技术最大的不同是Socket连接在数 ... -
Ubuntu上搭建Flex4的开发环境
2013-02-15 20:58 1236原文出自:http://www.brighthub.com/ ... -
flex web应用程序生成自定义右键菜单
2013-01-25 17:13 1106屏蔽浏览器的鼠标右键,同时监听鼠标右键,当触发右键点击事件的 ... -
Flex通过HTTPService与servlet通信
2013-01-16 15:03 1031Flex通过HTTPService与servlet通信 ... -
flex摄像头连接视频录制
2012-12-25 23:55 1654Flex提供了3个类实 ... -
Flex中多线程的实现(摘)
2012-12-25 19:49 1288Flex中多线程的实现 最近在网上看到一个工具 ... -
flash builder 4.7 install for windows 8
2012-12-23 01:02 1328之前在自己的win8上集成fb到myecl ... -
flex load map
2012-12-21 15:48 1010ArcGIS Server flex加载google地图 ... -
Flex与JavaScript交互调用函数
2012-12-21 09:43 893一、在JavaScript中调用Flex方法 在 Flex ... -
关于flex不能移除监听器总结
2012-12-20 00:07 1914首先看我从网上转载了一篇文章: <!--------- ... -
Flex中TitleWindow关闭按钮CloseButton的定制问题
2012-11-29 16:01 1208问题:TitleWindow的关闭 ... -
flex学习之联动下拉框实现
2012-11-27 12:55 1316Java代码 TbArea.java ... -
flex中弹出确认对话框
2012-11-22 16:30 858Xml代码 <?xml versi ... -
Flex(ActionScript3)解析XML
2012-11-20 17:21 695正文: 对于如下的一个XML文档,在flash中应该怎么读呢 ... -
Flex3 组件的定位和布局
2012-11-18 19:22 802Flex 组件的定位和布局 大多数 Flex 容器使用预定义 ... -
Flex异步令牌AsyncToken的用法介绍
2012-11-15 09:28 734什么是AsyncToken?官方文档是这样描述的:" ... -
Flex布局简介
2012-11-14 14:38 830★设置组件布局 对于所有的继承自UIComponent的组件包 ... -
Flex编程注意之直接获取某个组件的对象(this[]用法)
2012-11-14 13:09 668有这样一个需求:假如你new了一百次Button,同时这 ...
相关推荐
faultCode="Client.Error.MessageSend" faultDetail="Channel.Connect.Failed error NetConnection.Call.Failed: HTTP: Status 404: url: 'http://localhost:8080/WebContent/messagebroker/amf'" ``` **错误原因:...
这样,Flex客户端可以通过`/messagebroker/amf` URL与服务器进行数据交换。 4. **定义服务**:在`services-config.xml`文件中,定义Flex客户端与Java后端的连接点,包括通道设置和服务定义。 5. **编写Flex代码**...
在Flex端订阅消息的核心在于使用 BlazeDS 的 MessageBroker 服务,它提供了AMF(Action Message Format)通道,使得Flex客户端可以与服务器端的业务逻辑进行高效的数据交换。下面我们将深入探讨如何实现这个功能。 ...
<mx:RemoteObject id="srv" destination="admin" endpoint="http://localhost:8080/demo_flexConDB/messagebroker/amf"/> <mx:DataGrid id="DataSet1" width="100%" height="100%"/> (event)"/> ``` 这段代码展示了...
<endpoint url="http://{server.name}:{server.port}/{context.root}/messagebroker/amf" class="flex.messaging.endpoints.AMFEndpoint"/> <polling-enabled>false</polling-enabled> </properties> </...
Flex3界面布局教程是针对Adobe Flex 3框架进行教学的一系列教程中的第二篇文章,专注于展示如何使用Flex框架进行界面布局的设计。Flex是一种采用MXML标记语言的富互联网应用开发工具,它通过简单直观的声明式标签来...
<service url="http://{server.name}:{server.port}/flex-spring-web-soft8/messagebroker/amf" /> ``` 但在实际运行中,发现无法正确地获取到该服务。 **解决方法:** 确保`services-config.xml`中的`context-root...
7. 发布并运行,Flex 客户端通过 `<mx:RemoteObject>` 标签访问 Java 对象,如 `<mx:RemoteObject id="as3" destination="test" endpoint="http://localhost:8080/MyServer/messagebroker/amf"/>`。 这种结合的关键...
<endpoint url="http://{server.name}:{server.port}/{context.root}/messagebroker/amf" class="flex.messaging.endpoints.AMFEndpoint"/> </channel-definition> </services> ``` 服务器端还需要一个对应的服务...
<endpoint url="http://{server.name}:{server.port}/{context.root}/messagebroker/amf" class="flex.messaging.endpoints.AMFEndpoint"/> </channel-definition> </channels> <source>...
5. **Flex项目设置**:在Flex Builder中,`<s:RemoteObject>`标签需要配置`endpoint`属性,指向BlazeDS的MessageBroker,通常是`http://localhost:8080/Java2Flex/messagebroker/amf`。同时,`services-config.xml`...
<endpoint url="http://{server.name}:{server.port}/{context.root}/messagebroker/amf" class="flex.messaging.endpoints.AMFEndpoint"> <filter-class>com.example.ChatMessageFilter</filter-class> </...
<s:RemoteObject id="myService" endpoint="http://{server.name}/{context.root}/messagebroker/amf" destination="myServiceDestination"> (event)" fault="handleFault(event)"/> </s:RemoteObject> </fx:...
<endpoint url="http://{server.name}:{server.port}/{context.root}/messagebroker/amf" class="flex.messaging.endpoints.AMFEndpoint"/> </channel-definition> </channels> ``` 在这个例子中,`...
<endpoint url="http://servername:8400/myapp/messagebroker/amf" class="flex.messaging.endpoints.AMFEndpoint"/> </channel-definition> </channels> ``` ##### 2.1 为Flex组件指定通道 如果通过编译参数`-...
(event)" id="us" fault="Alert.show(event.fault.message.toString())" endpoint="http://localhost:8080/BlazeDS_Java_Flex/messagebroker/amf"> </mx:RemoteObject> ``` 这段代码创建了一个名为`userService`的...
<endpoint url="http://{server.name}:{server.port}/{context.root}/messagebroker/amf" class="flex.messaging.endpoints.AMFEndpoint"/> <class>com.example.MyJavaService</class> </source> </...
<server-url>http://localhost:8400/messagebroker/amf</server-url> <source>com.example.MyService</source> </properties> </destination> ``` 3. 创建RemotingObject实例:在Flex代码中,创建一个Remoting...
remoteService.endpoint = "http://localhost:8080/myapp/remoting/messagebroker/amf"; remoteService.myMethod.addEventListener(ResultEvent.RESULT, onResult); remoteService.myMethod.addEventListener...