在ArcGIS Server FlexViewer框架下使用FluorineFx问题集
近来几天,在.net平台和FluorineFx框架下使用远程调用,发现了不少问题..
首先,在FlexViewer下的Widget下使用RemoteObject(用代码生成或者是直接在mxml文件生成)调用远程服务出现了很严重的问题,一旦我在其中一个Widget调用了远程服务,再使用另外一个Widget就出现假死,我初初以为是FluorineFx有问题,然后就研究了大量的英语资料和网上找答案,但并无斩获,最后,出自测试的手段,一一测试解决的办法,最后发现;
- 如果没有使用FlexViewer,是完全没有问题的..
- 在FlexViewer其中一个Widget调用多个RemoteObject也没问题..
初步认定是FlexViewer的问题..解决方案重写框架..别的方案暂无..
于7月2日找到解决方案,在module使用NetConnection来对服务进行连接.代码如下:
var nc:NetConnection = new NetConnection(); var rs:Responder = new Responder(onResult1,onStatus); nc.objectEncoding = ObjectEncoding.AMF3; nc.connect("http://localhost:1806/pysf.Web/Gateway.aspx"); nc.client = this; nc.call("pysf.Remoting.sfxx.yqManager.yqQueryJJ",rs);
然后就是Channel definition, mx.messaging.channels.RTMPChannel, can not be found的问题,最新版的FluorineFx在services-config.xml中新增了RTMP Channel,主要是用来配置Flex Messaging,编译时需要FDS.swc支持,当然如果不需要此功能可以注释掉channel-definition这个节点。
直接在类库中添加FDS.swc即可解决问题..