2012-07-01 2 views
0

내 응용 프로그램 중 하나에 대해 파슬리 3을 Flex 4 (AIR)와 함께 사용하고 있습니다. 원격 호출을 할 때 명령 클래스와 Java 계층 서비스에 도달하는 이벤트를 전달합니다. 여기까지 모든 것이 잘 작동합니다. Java 레이어는 일부 호출 등을 만들고 결과를 다시 반환하지만 결과 처리기 (또는 오류 처리기)는 제어를 다시 얻지 못합니다.결과 핸들러가 파슬리 3에서 컨트롤을 가져 오지 못함 Flex 4 (BlazeDS + Spring)에서 사용됨

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

명령이 오류를 발생시키기 때문에 result 메서드가 호출되지 않을 수 있습니다.

파슬리 명령의 실패 메서드는 fault이 아니라 error이므로 fault 메서드는 호출되지 않습니다.

fault 메서드의 이름을 error으로 변경하고 변경되는지 확인하십시오.

+0

답변을 찾았습니다. 파슬리 3에서는 토큰에 응답자를 추가해야하는데 이제는 정상적으로 작동합니다. 그러나 놀랍게도,이 코드는 파슬리 2.4에서 잘 작동합니다. –

+0

수동으로 응답자를 추가하면, 응답 메소드가 Parsley가 아니라 fault 메소드를 호출합니다. 이는 메모리 누수로 이어질 수있는 GC'd 명령을 초래하지 않기 때문에 적절한 해결책은 아닙니다. 또한 다른 [CommandResult] 또는 [CommandError] 핸들러는 호출되지 않습니다. 나는 2.4에서 3으로 업그레이드를하지 않았기 때문에 파슬리 포럼에 질문을 게시하는 것이 좋습니다. –

+0

감사합니다. Marty, 나는 파슬리 포럼에 게시했습니다. –

관련 문제