动态设置Flex与Java的通信通道
来源:互联网 发布:容祖儿密友知乎 编辑:程序博客网 时间:2024/05/16 10:57
Flex 调用远程或所在web应用的 BlazeDS服务时,必须建立和远端的通道channel,才能正常通信。
例:
<fx:Declarations>
<mx:RemoteObject id="remoteObject" destination="parkingIntroduce" />
</fx:Declarations>
在action代码中:
/**
* 得到服务器端根URL
* sq
*/
public function queryServerRootURL():String{
var protocolPath:String = ExternalInterface.call("eval","window.location.protocol");//获取页面的protocol.得到 http:
var hostPath:String = ExternalInterface.call("eval","window.location.host"); //获取页面的host,得到 10.64.59.12:8080
var path:String = ExternalInterface.call("eval","window.location.pathname"); //获取页面的host,得到 /ivms8640v1.2/ParkingIntroduce-debug/ParkingIntroduce.html
var strs:Array = path.split("/"); //得到ivms8640v1.2
var projectName:String = strs[1];
var server_root_path:String = protocolPath + "//" + hostPath + "/" + projectName + "/";//http://10.64.59.12:8080/ivms8640v1.2/
server_root_path = protocolPath + "//" + hostPath + "/";//适用于1.2的url: http://10.64.62.180:8080
return server_root_path;
}
//初始化车位信息
public function initalParkingLot():void{
remoteObject.endpoint = queryServerRootURL() + "/messagebroker/amf";
}
转:
Flex 调用远程或所在web应用的 BlazeDS服务时,必须建立和远端的通道channel,才能正常通信。
1. 通常的方式是 Flex 在编译时就指定远程的端点 Endpoint,service-config.xml 中的Endpoint 配置是 例如:
Xml代码 复制代码
1. <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代码 复制代码
1. <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的小程序,放到桌面也能跑起来。
- 动态设置Flex与Java的通信通道
- java与flex通信
- Flex与java通信
- Flex与java通信
- Java与Flex间的通信构造
- flex与java的一种通信方式
- Flex与Java的交互通信
- flex与JAVA的SOCKET通信
- Flex与Java通信 (一)
- Flex与java通信错误
- BlazeDS, Flex与Java通信
- java socket与 flex 通信
- blazeds flex与java通信
- Flex Socket与java通信
- Flex与Java通信 (一)
- Flex与Java通信 (一)
- flex socket与Java通信
- 关于Flex与Spring整合RemoteObject调用Java方法找不到自定义通道的解决方法
- SPRING相关的杂七杂八
- extern int Image$$RW_IRAM1$$ZI$$Limit
- perl 引用(数组和hash引用)
- GTimer只是个计时器
- 使用ProcessBuilder执行本地命令
- 动态设置Flex与Java的通信通道
- AnimationTest
- Tomcat 5.5.x到Tomcat 6.0(tomcat6新特性及变化)
- 软件定制日志:vpn拨号器
- Myeclipse 10 安装findbugs
- 20130205-说说C语言中的Static(二)
- 火线 零线 地线
- hibernate学习笔记15
- 主数据管理平台应具备的六大功能