0

我将 parsley 3 与 Flex 4 (AIR) 一起用于我的一个应用程序。当我进行远程调用时,我正在调度一个事件,该事件到达命令类,然后到达 Java 层服务。直到这里一切正常。Java 层进行一些调用等并返回结果,但我的结果处理程序(或故障处理程序)没有获得控制权。

 Project
          bin-debug
          libs
              parsley-core-3.0.0.swc
              parsley-flex-3.0.0.swc
              parsley-xml-3.0.0.swc
              spicelib-commands-3.1.1.swc
              spicelib-reflect-3.0.0.swc
              spicelib-util-3.1.0.swc
              spicelib-xml-mapper-3.0.2.swc
         Main.mxml
         ProjectEvent.as
          LoadProjectsCommand
          ProjectPM.as

和其他东西。

命令类获得控制权并且还能够调用 java 服务。代码如下:

package 
{
    import mx.collections.ArrayCollection;
    import mx.controls.Alert;
    import mx.rpc.AsyncToken;
    import mx.rpc.events.FaultEvent;
    import mx.rpc.events.ResultEvent;
    import mx.rpc.remoting.RemoteObject;

    /*http://www.spicefactory.org/parsley/docs/3.0/manual/managedcommands.php*/
    public class LoadProjectsCommand
    {
        [Inject(id="projectRemoteService")]
        public var projectRemoteService:RemoteObject;

        [Inject]
        public var model:ProjectScreenPM;

        public function execute(event:ProjectEvent):AsyncToken
        {
            return projectRemoteService.getAllProjectsWithSprintsInSystem() as AsyncToken;
        }

        public function result(event:ResultEvent):void
        {
            Alert.show("Result");
        }
        public function fault(event:FaultEvent):void
        {
            Alert.show("Fault in retrieving projects","Error");
        }
    }
}

我已经验证了 Java 服务调用中的一切都很好。有人可以帮我吗?

4

1 回答 1

1

您可能会发现该result方法没有被调用,因为该命令正在引发错误。

欧芹命令中的失败方法被调用error,而不是fault,所以你的fault方法永远不会被调用。

fault将方法重命名为error,看看是否会发生变化。

于 2012-07-01T13:50:18.093 回答