结果处理程序无法控制与Flex 4一起使用的欧芹3(BlazeDS + Spring)

时间:2012-07-01 10:01:34

标签: flex remoting blazeds parsley

我正在使用带有Flex 4(AIR)的parsley 3作为我的一个应用程序。当我进行远程调用时,我将调度一个事件,直到命令类,然后到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服务调用中的每一件事都很好。有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:1)

您可能会发现未调用result方法,因为该命令引发了错误。

parsley命令中的失败方法称为error,而不是fault,因此永远不会调用fault方法。

fault方法重命名为error,看看是否有所改变。