Flex4 + FluorineFx配置开发环境时遇到的问题及解决方法
2011-08-26 13:04
841 查看
最近做一个项目时想使用Flex4 + PureMVC做客户端,呵呵,这个优点就不多说了。对于PureMvc框架这里就不提了,因为官网上有最佳实践的中文版可以阅读一下,不是很困难,至少我配置时没遇到什么太大障碍。而且考虑到Web Service的效率问题,于是想尝试一下FluorineFx,虽然它已经不是什么新东西,但是此次配置开发环境令我非常郁闷,呵呵,可能和我的编码习惯有关吧。实际上以前配置过FluorineFx,但长时间不用,所以大多忘记了,就仅仅有个印象。
在配置过程中遇到了三个要注意的地方:
RPC时服务器端使用的类必须存在默认构造函数;
使用RemoteObject时,Flex端的ValueObject需要有get和set方法,或者public字段;
可以仅使用ActionScript代码调用服务器端方法。
如果没满足第一种情况,当你提交值对象时,你会得到下面的错误:
这个错误在网上也有解决方案,但不适用我的这种情况。
如果你没满足第二种情况,当你调试服务器端代码时你会发现Flex客户端的值没有传递到服务器端。
呵呵,第三种情况仅仅是对我而言的,因为不想使用<s:RemoteObject />这种形式。所以尝试了几次都没弄明白,如何使用AS中的RemoteObject对象来调用服务器端方法。最后有幸看到一篇外国人写的文章才恍然大悟,呵呵。下面把一些伪代码写在下面,作为参考吧。
下面是比较简单的services-config.xml,感觉是可以通用的。
另外还要注意在Flex端的值对象(VO)的类声明上加上[RemoteClass(alias="DomainModel.Authorization.LoginInfo")]元数据标签,不带程序集名称。
以上就是我按照FluorineFx的帮助配置时遇到的问题,当然还有其他大量的网上资源,呵呵,希望能帮到其他和我遇到一样问题的人了。
在配置过程中遇到了三个要注意的地方:
RPC时服务器端使用的类必须存在默认构造函数;
使用RemoteObject时,Flex端的ValueObject需要有get和set方法,或者public字段;
可以仅使用ActionScript代码调用服务器端方法。
如果没满足第一种情况,当你提交值对象时,你会得到下面的错误:
这个错误在网上也有解决方案,但不适用我的这种情况。
如果你没满足第二种情况,当你调试服务器端代码时你会发现Flex客户端的值没有传递到服务器端。
呵呵,第三种情况仅仅是对我而言的,因为不想使用<s:RemoteObject />这种形式。所以尝试了几次都没弄明白,如何使用AS中的RemoteObject对象来调用服务器端方法。最后有幸看到一篇外国人写的文章才恍然大悟,呵呵。下面把一些伪代码写在下面,作为参考吧。
var loginService:RemoteObject = new RemoteObject("fluorine"); //destination是services-config.xml文件中定义的<destination id="fluorine"> loginService.source = "BusinessLogical.Services.LoginService"; //提供服务的类的全名,不包含程序集名称 loginService.addEventListener(ResultEvent.RESULT, onAuthorizeResult); loginService.addEventListener(FaultEvent.FAULT, onAuthorizeFault); loginService.Authorize(loginVo); //Authorize方法就是服务器端LoginService提供的方法
下面是比较简单的services-config.xml,感觉是可以通用的。
<?xml version="1.0" encoding="utf-8" ?> <services-config> <services> <service id="remoting-service" class="flex.messaging.services.RemotingService" messageTypes="flex.messaging.messages.RemotingMessage"> <destination id="fluorine"> <channels> <channel ref="my-amf"/> </channels> <properties> <source>*</source> </properties> </destination> </service> </services> <channels> <channel-definition id="my-amf" class="mx.messaging.channels.AMFChannel"> <endpoint uri="http://{server.name}:{server.port}/{context.root}/Gateway.aspx" class="flex.messaging.endpoints.AMFEndpoint"/> <properties> <!-- <legacy-collection>true</legacy-collection> --> </properties> </channel-definition> </channels> </services-config>
另外还要注意在Flex端的值对象(VO)的类声明上加上[RemoteClass(alias="DomainModel.Authorization.LoginInfo")]元数据标签,不带程序集名称。
以上就是我按照FluorineFx的帮助配置时遇到的问题,当然还有其他大量的网上资源,呵呵,希望能帮到其他和我遇到一样问题的人了。
相关文章推荐
- 配置开发环境遇到的一些问题及解决方法
- Android Studio-—使用OpenCV的配置方法和demo以及开发过程中遇到的问题解决
- Android开发环境搭建时遇到问题的解决方法
- Win7(64)+Qt5.5.1+OpenCv3.2+CMake3.5 环境配置过程中遇到的问题及解决方法
- kafka+zookeeper集群安装与配置(CENTOS7环境)及开发中遇到的问题解决
- myeclipse配置hadoop开发环境,及遇到问题解决
- 嵌入式开发环境配置问题和解决方法(1)
- CUnit开发环境搭建过程可能遇到的一些问题及解决方法
- 搭建WinXP+VS2008+IIS+Sql Server 2005开发环境遇到的问题及解决方法备案
- 64位win7手动搭建php开发环境Apache+MySQL+php及相关配置,问题解决方法
- myeclipse配置hadoop开发环境,及遇到问题解决
- 在Windows 7下配置eCos开发环境的问题和解决方法
- android开发环境遇到adt无法启动的问题分析及解决方法
- wamp开发环境下安装Yii 可能会遇到的问题及解决方法
- myeclipse配置hadoop开发环境,及遇到问题解决
- myeclipse配置hadoop开发环境,及遇到问题解决
- maven环境搭建以、在eclipse中如何配置、maven库遇到问题解决方法
- ubuntu下配置caffe环境遇到的一些问题及解决方法(备忘)
- PHP环境配置中遇到的各种问题解决方法: Cannot load php5apache2_2.dll into server
- Android Studio-—使用OpenCV的配置方法和demo以及开发过程中遇到的问题解决