博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
解决 Flex模块切换后导致对象转换失败 注册信息丢失
阅读量:4943 次
发布时间:2019-06-11

本文共 2499 字,大约阅读时间需要 8 分钟。

在Flex下, 如果一个项目里面有多个模块时,在第一次加载Module是可以的。在第二次加载module时,“注册”信息会丢失。

即如下的[RemoteClass(alias="com.tjsoft.iess2.po.jxpg.TSysJxUser")]这一行代码;
所产生的错误信息为:
[RPC Fault faultString="Cannot invoke method 'save'." faultCode="Server.ResourceUnavailable" faultDetail="The expected argument types are (com.tjsoft.iess2.po.jxpg.TSysJxUser) but the supplied types were (flex.messaging.io.amf.ASObject) and converted to (null)."]
at mx.rpc::AbstractInvoker/http://www.adobe.com/2006/flex/mx/internal::faultHandler()[C:/autobuild/3.2.0/frameworks/projects/rpc/src/mx/rpc/AbstractInvoker.as:220]
at mx.rpc::Responder/fault()[C:/autobuild/3.2.0/frameworks/projects/rpc/src/mx/rpc/Responder.as:53]
at mx.rpc::AsyncRequest/fault()[C:/autobuild/3.2.0/frameworks/projects/rpc/src/mx/rpc/AsyncRequest.as:103]
at NetConnectionMessageResponder/statusHandler()[C:/autobuild/3.2.0/frameworks/projects/rpc/src/mx/messaging/channels/NetConnectionChannel.as:569]
at mx.messaging::MessageResponder/status()[C:/autobuild/3.2.0/frameworks/projects/rpc/src/mx/messaging/MessageResponder.as:222]

如下为解决办法:在要调用远程对象的Application文件里面,加上如下声明语句:
    import flash.net.registerClassAlias;
   import mx.messaging.messages.RemotingMessage;
    registerClassAlias("com.tjsoft.iess2.po.jxpg.TSysJxUser", JxUser);

下面是项目中的两个相关文件源代码作为示例

// ActionScript file
package jxpg
{
[Bindable]
    [RemoteClass(alias="com.tjsoft.iess2.po.jxpg.TSysJxUser")]
    public class JxUser
    {
        public var id:String;
   public var name:String;
   public var code:String;
   public var createtime:Date;
   public var password:String;
   public var deptid:String;
   public var remark:String;
   public var status:String;
   public var logintype:String;
   public var deptname:String;
    }

}

//Application file
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx=""
xmlns:page="pager.*"
xmlns:dept="jxpg.*"
layout="absolute" verticalAlign="top"
    horizontalAlign="center" paddingTop="0"
    initialize="initApp()" creationComplete="onCreationComplete()" >
    <mx:Style source="skins/blue/blue.css"/>
    <mx:Script>
        <![CDATA[
        import jxpg.JxUser;
    import mx.controls.Alert;
    import mx.collections.ArrayCollection;
    import mx.rpc.events.*;
    import mx.events.ListEvent;
    import mx.managers.PopUpManager;
    import jxpg.utils;
    import mx.events.CloseEvent;
   
    //申请注册别名,使切换模块后仍然能正常通信
    import flash.net.registerClassAlias;
   import mx.messaging.messages.RemotingMessage;
    registerClassAlias("com.tjsoft.iess2.po.jxpg.TSysJxUser", JxUser); //这里才是重点
    }
        ]]>
</mx:Application>

参考资料1:
参考资料2:

转载于:https://www.cnblogs.com/JPAORM/archive/2011/03/25/2509826.html

你可能感兴趣的文章
英语各种时态例句
查看>>
从下往上看--新皮层资料的读后感 第三部分 70年前的逆向推演- 从NN到ANN
查看>>
(转)系统引导管理器GRUB详解
查看>>
数据访问C#入门经典第21章-读写压缩数据
查看>>
PHP超时处理全面总结(转)
查看>>
利用python进行数据分析--pandas入门2
查看>>
[zz]使用 libevent 和 libev 提高网络应用性能
查看>>
Linux故障处理最佳实践
查看>>
6标准文件读写
查看>>
jsTree 核心功能(core functionality) API
查看>>
Perl oop链接数据库
查看>>
网络虚拟化我眼中的OpenFlow
查看>>
[leetcode] 3. Longest Substring Without Repeating Characters
查看>>
06 Frequently Asked Questions (FAQ) 常见问题解答 (常见问题)
查看>>
获取判断IE版本 TypeError: Cannot read property 'msie' of undefined
查看>>
tcpreplay安装使用
查看>>
自增锁
查看>>
ps命令学习
查看>>
关于proteus仿真的串口问题
查看>>
[NOI2018] 归程 可持久化并查集
查看>>