您的位置:首页 > 其它

Blazeds 与Flex 发布时需要注意的问题

2010-01-13 17:57 288 查看
在通过blazeds实现消息时,FLEX发布时需要在设置里面将flexserver中将contextroot与web应用的contextroot名称设置成一样的!否则就不能正确的接收到消息

以下是相关的参数文章

关键字: flex blazeds
来自:http://hi.baidu.com/%C7%E1%BD%A3/blog/item/33ce7219256b894d42a9ad30.html
Flex 调用远程或所在web应用的 BlazeDS服务时,必须建立和远端的通道channel,才能正常通信。
1. 通常的方式是 Flex 在编译时就指定远程的端点 Endpoint,service-config.xml 中的Endpoint 配置是 例如:

Xml代码

<endpoint url="http://{server.name}:{server.port}/{context.root}/messagebroker/amf"

<endpoint url="http://{server.name}:{server.port}/{context.root}/messagebroker/amf"


编译时指定的方式是在加编译参数,例如:

引用
-services "services-config.xml" -context-root "/HelloBlazeds"

services-config.xml 需要放在当前目录下,或者指定BlazeDS所在的配置文件路径。
http://www.adobe.com/cfusion/communityengine/index.cfm?event=showdetails&productId=2&postId=12209
2. 在 <mx:RemoteObject/> 对象中指定Endpoint参数:
例如:

Xml代码

<mx:RemoteObject id="roOrder" destination="Hello" showBusyCursor="true" endpoint="http://server:8080/HelloBlazeDS/messagebroker/amf" >

<mx:RemoteObject id="roOrder" destination="Hello" showBusyCursor="true" endpoint="http://server:8080/HelloBlazeDS/messagebroker/amf" >


1) 全路径: endpoint="http://server:8080/HelloBlazeDS/messagebroker/amf" >
2) 基于contextRoot: endpoint="/HelloBlazeDS/messagebroker/amf" >
3) 基于当前路径: endpoint="messagebroker/amf" >

总结:
对于Flex+BlazeDS集成开发,方式1,和2.1),2.2) 对于企业应用来说都不是最佳方案,因为他将 contextroot写死了,不便于移植,也就是说,编译后的 swf 放到其他应用下无法调用BlazeDS服务;
而对于互联网应用,如果假定 endpoint地址比较固定,编译时指定contextroot或endpoint全路径则是较好的选择,例如一个从google搜索信息Flex的小程序,放到桌面也能跑起来。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: