解析flex的RemoteService的Endpoint
发布时间:2020-12-15 04:11:33 所属栏目:百科 来源:网络整理
导读:做flex远程交互的时候,使用RemoteObject要设置其端点属性,如果在根节点,那么直接使用“/messagebroker/amf”就可以了,但是,如果应用发布在webapp文件夹下面,那么上面指定的endpoint就要报错了,此时必须显式指定endpoint。但是“写死”的方式不够灵活
做flex远程交互的时候,使用RemoteObject要设置其端点属性,如果在根节点,那么直接使用“/messagebroker/amf”就可以了,但是,如果应用发布在webapp文件夹下面,那么上面指定的endpoint就要报错了,此时必须显式指定endpoint。但是“写死”的方式不够灵活,所以要灵活去指定就必须解析URL了。 下面该类是本人提供的一个可以解析endpoint的类。 /*********************************************** **** 版权声明处 ** **** 为了方便阅读和维护,请严格遵守相关代码规范,谢谢 **** *******************************************/ package com.hnisi.screen.common { import mx.core.FlexGlobals; import mx.utils.URLUtil; /******************************************* **** huangjixin,2012-5-24,下午1:30:53 ** **** 全局静态类,可用于保存相关的静态变量或常量 ** *******************************************/ [Bindable] public class Global { //_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ // private 类私有静态变量和静态常量声明处。(全部大写,使用下划线进行分割) // 例如:private static const EXAMPLE:String = "example"; //_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ private static var _instance:Global; //_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ // public 类公有静态变量和静态常量声明处。(全部大写,使用下划线进行分割) // 例如:public static const EXAMPLE:String = "example"; //_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ public var endPoint:String = "http://localhost:8080/gdds_portal/messagebroker/amf"; public var url:String = ""; public var appFileUrl:String = "http://localhost:8080/gdds_portal/hall_swf/gdds_portal.swf"; public var frequency:Number = 900000; //定时播放频率; public var autoPlayFrequent:Number = 900000; //自动播放频率 public var basicValue:Number = 34; //基准值 public var isWeb:Boolean; //是否基于web; //_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ // private 私有变量声明处,请以“_”开头定义变量 // 例如:private var _example:String; //_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ //_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ // public 公有变量声明处 //_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ //_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ // 构造函数,初始化相关工作可以放在里面 //_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ public function Global() { if(_instance){ throw new Error("请使用getInstance函数"); } }//构造函数结束 //_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ // getter和setter函数 //_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ //_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ // 相关事件响应函数和逻辑函数存放处 //_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ public static function getInstance():Global { if (!_instance){ _instance = new Global(); } return _instance; } /** * 通过解析URL,設置endPoint属性 * @return * */ public function setUrl():Boolean { var url:String = ""; var endPoint:String = ""; url = FlexGlobals.topLevelApplication.url; var isHttpUrl:Boolean = URLUtil.isHttpURL(url); if(!isHttpUrl){ return false; } //解析协议; var protocol:String = URLUtil.getProtocol(url); //解析服务器和端口; var serverNameWithPort:String = URLUtil.getServerNameWithPort(url); endPoint = protocol + "://"+serverNameWithPort; //解析应用路径; var array:Array = url.split("/"); if(array && array.length>4){ endPoint+="/"+array[3]; } Global.getInstance().endPoint = endPoint + "/"+'messagebroker/amf'; Global.getInstance().isWeb = isHttpUrl; return true; } //_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ // override 覆盖函数 //_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ }//类结束 }//包结束 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |