Which version of Cairngorm are you using? seems like an old one. At quick 
glance your code seems fine.
 
Not really sure what to recommend except maybe upgrade to version 2.2.1? You 
dont have to do that call to loadWSDL(), it is taken of for you.
 
Here is that the delegate should look like:
 
public class AgentDelegate {
 
  private var service:Object;
  private var responder:IResponder;
 
  public function AgentDelegate( responder:IResponder ) {
   service = ServiceLocator.getInstance().getWebService( "agentServices" );
   this.responder = responder;
  }
 
 public function search( criteria:String ):void {
   var call:AsyncToken = service.search( criteria );
   call.addResponder( responder );
  }
 }
 
And here is the Command class:
 
public class SearchAgentCmd implements ICommand, IResponder {
 
  public function SearchAgentCmd() {
 
  }
 
  public function execute( event:CairngormEvent ):void {
   var evt:SearchAgentEvent = event as SearchAgentEvent;
   var delegate:AgentDelegate = new AgentDelegate( this );
   delegate.search( evt.name );
  }
 
  public function result( event:Object ):void {
   var evt:ResultEvent = event as ResultEvent;
   UserModel.getInstance().agentSearchResults = evt.result as ArrayCollection;
  }
 
  public function fault( event:Object ):void {
   var evt:FaultEvent = event as FaultEvent;
   //show error message somehow
  }
 }
 
Dimitrios Gianninas
RIA Developer and Team Lead
Optimal Payments Inc.
 

________________________________

From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On Behalf Of jfournet
Sent: Thursday, July 03, 2008 6:04 PM
To: flexcoders@yahoogroups.com
Subject: [flexcoders] Cairngorm Result and Fault Handlers not called



I have one command in my application in which the result and fault 
handlers are not called. All other work fine. The webservice that 
is tied to it gets executed and data is returned, as I can see it in 
the flex log file. Does anyone know what might cause this???

Command File:

package com.bmc.rem.command.learning
{

import com.adobe.cairngorm.business.Responder;
import com.adobe.cairngorm.commands.Command;
import com.adobe.cairngorm.control.CairngormEvent;
import com.bmc.rem.common.eventBroadcaster.REMEventBroadcaster;
import com.bmc.rem.controller.REMControl;
import com.bmc.rem.delegate.probe.ProbeServicesDelegate;
import com.bmc.rem.vo.learning.*;
import mx.utils.ObjectUtil;

import mx.collections.ArrayCollection;

public class GetLearningResultsCommand implements Command, Responder
{

public function execute( event:CairngormEvent ) : void
{
trace("******* executing get learning results *******");
var delegate: ProbeServicesDelegate = new 
ProbeServicesDelegate( this ); 
delegate.getLearningResults(event.data);
trace("****** after delegate.getLearningResults *****");

}

/**
* The onResult method is called when the server side method 
completes successfully.
* @param event The event containing the information returned by 
the server.
* 
*/
public function onResult( event : *=null ) : void
{ 

trace("*******************learning data format = 
**************" + ObjectUtil.toString(event.result));
REMEventBroadcaster.getInstance().dispatchEvent
(REMControl.EVENT_GET_LEARNING_RESULTS_SUCCESSFUL, null);
}

/**
* The onFault method is called when the server side method call 
returns an exception.
* @param event The event containing the exception returned by the 
server.
* 
*/
public function onFault( event : *=null ) : void
{
trace("****** on fault learning restults");
REMEventBroadcaster.getInstance().dispatchEvent
(REMControl.EVENT_SHOW_SERVER_ERROR, event.fault.message);
REMEventBroadcaster.getInstance().dispatchEvent( 
REMControl.EVENT_GET_LEARNING_RESULTS_FAILURE );
}
}
}

Delegate:

package com.bmc.rem.delegate.probe
{

import com.adobe.cairngorm.business.Responder;
import com.adobe.cairngorm.business.ServiceLocator;
import com.bmc.rem.model.ModelLocator;
import com.bmc.rem.vo.probe.LearningCriteriaVO;

import mx.rpc.AsyncToken;
import mx.rpc.soap.mxml.WebService;

public class ProbeServicesDelegate
{

/**
* The responder to the server side service calls
*/
private var responder:Responder;


private var service:Object;

private var probeServicesFacade:Object;

public function ProbeServicesDelegate( responder : Responder )
{

this.probeServicesFacade = ServiceLocator.getInstance
().getService("probeServicesFacade") as WebService;
if( !ModelLocator.getInstance().isProbeWSDLLoaded)
{
ModelLocator.getInstance().isProbeWSDLLoaded = 
true; 
this.probeServicesFacade.loadWSDL();

}

this.responder = responder;
}

public function startLearning
(learningSession:LearningCriteriaVO):void
{

var startLearningString:String = 

"<q1:SetLearningSetting 
xmlns:q0=\"http://tmremprobe.bmc.com/datamodel/common 
<http://tmremprobe.bmc.com/datamodel/common> \" 
xmlns:q1=\"http://tmremprobe.bmc.com/ws/ProbeService 
<http://tmremprobe.bmc.com/ws/ProbeService> \">" +

"<q0:Learning>Active</q0:
Learning>" +
"<q0:UserId />" +
"<q0:IPRange>" +

"<q0:StartingIP>" + 

learningSession.fromIpAddress +

"</q0:StartingIP>" +
"<q0:EndingIP>" +

learningSession.toIpAddress +
"</q0:EndingIP>" 
+
"</q0:IPRange>" + 
"<q0:URLPattern>" +

learningSession.urlPatternFilter +
"</q0:URLPattern>" +
"<q0:CapturePeriod>" +

learningSession.learningDuration +
"</q0:CapturePeriod>" +
"<q0:ResultLimit>" +

learningSession.learningCount +
"</q0:ResultLimit>" +
"</q1:SetLearningSetting>
";
trace("startLearningString = " + 
startLearningString);
var startLearningXML:XML = new XML
(startLearningString);
trace("startLearningXML = " + startLearningXML);
var endpointURI:String = "http://"; + 
learningSession.probe.probeHost + ":" +

learningSession.probe.probeConnectionPort 
+ "/axis2/services/ProbeService/SetLearningSetting";
this.probeServicesFacade.endpointURI = 
endpointURI;
trace("endpointURI " + endpointURI);
var call:AsyncToken = 
probeServicesFacade.SetLearningSetting(startLearningXML);
trace("after invoking webservice");
call.resultHandler = responder.onResult;
call.faultHandler = responder.onFault;

}

public function stopLearning
(learningSession:LearningCriteriaVO):void
{

var stopLearningString:String = 

"<q1:SetLearningSetting 
xmlns:q0=\"http://tmremprobe.bmc.com/datamodel/common 
<http://tmremprobe.bmc.com/datamodel/common> \" 
xmlns:q1=\"http://tmremprobe.bmc.com/ws/ProbeService 
<http://tmremprobe.bmc.com/ws/ProbeService> \">" +

"<q0:Learning>Inactive</q
0:Learning>" +
"<q0:UserId />" +
"<q0:IPRange>" +

"<q0:StartingIP>" + 

learningSession.fromIpAddress +

"</q0:StartingIP>" +
"<q0:EndingIP>" +

learningSession.toIpAddress +
"</q0:EndingIP>" 
+
"</q0:IPRange>" + 
"<q0:URLPattern>" +

learningSession.urlPatternFilter +
"</q0:URLPattern>" +
"<q0:CapturePeriod>" +

learningSession.learningDuration +
"</q0:CapturePeriod>" +
"<q0:ResultLimit>" +

learningSession.learningCount +
"</q0:ResultLimit>" +
"</q1:SetLearningSetting>
";

var endpointURI:String = "http://"; + 
learningSession.probe.probeHost + ":" +

learningSession.probe.probeConnectionPort 
+ "/axis2/services/ProbeService/SetLearningSetting";
this.probeServicesFacade.endpointURI = 
endpointURI;
var stopLearningXML:XML = new XML
(stopLearningString);
trace("stopLearningXML = " + stopLearningXML);
var call:AsyncToken = 
probeServicesFacade.SetLearningSetting(stopLearningXML);
call.resultHandler = responder.onResult;
call.faultHandler = responder.onFault;

}

public function getLearningResults
(learningCriteria:LearningCriteriaVO):void
{
var getLearningResultsString:String 
= "<q0:GetLearningResult " +

"xmlns:q0=\"http://
tmremprobe.bmc.com/ws/ProbeService\"/>";

/*"<soapenv:Envelope 
xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/ 
<http://schemas.xmlsoap.org/soap/envelope/> \" " +

"xmlns:q0=\"http://tmremp
robe.bmc.com/datamodel/common\" 
xmlns:q1=\"http://tmremprobe.bmc.com/ws/ProbeService 
<http://tmremprobe.bmc.com/ws/ProbeService> \" " +

"xmlns:xsd=\"http://www.w
3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema- 
<http://www.w3.org/2001/XMLSchema-> 
instance\">" +
"<soapenv:Body>" 
+
"<q0:GetLearningResult " 
+
"xmlns:q0=\"http://tmremp
robe.bmc.com/datamodel/common\">" +
"</q0:GetLearningResult>"
+
"</soapenv:Body>" +
"</soapenv:Envelope>";*/
var endpointURI:String = "http://"; + 
learningCriteria.probe.probeHost + ":" + 
learningCriteria.probe.probeConnectionPort 
+ "/axis2/services/ProbeService/GetLearningResult";
this.probeServicesFacade.endpointURI = 
endpointURI;
trace("getLearningResultsSTring = " + 
getLearningResultsString);
var getLearningResultsXML:XML = new XML
(getLearningResultsString);
trace("getLearningResultsXML = " + 
getLearningResultsXML);
var call:AsyncToken = 
probeServicesFacade.GetLearningResult(getLearningResultsXML);
call.resultHandler = responder.onResult;
call.faultHandler = responder.onFault;
trace("after get learning results");

}

}

}



 

-- 
WARNING
-------
This electronic message and its attachments may contain confidential, 
proprietary or legally privileged information, which is solely for the use of 
the intended recipient.  No privilege or other rights are waived by any 
unintended transmission or unauthorized retransmission of this message.  If you 
are not the intended recipient of this message, or if you have received it in 
error, you should immediately stop reading this message and delete it and all 
attachments from your system.  The reading, distribution, copying or other use 
of this message or its attachments by unintended recipients is unauthorized and 
may be unlawful.  If you have received this e-mail in error, please notify the 
sender.

AVIS IMPORTANT
--------------
Ce message électronique et ses pièces jointes peuvent contenir des 
renseignements confidentiels, exclusifs ou légalement privilégiés destinés au 
seul usage du destinataire visé.  L'expéditeur original ne renonce à aucun 
privilège ou à aucun autre droit si le présent message a été transmis 
involontairement ou s'il est retransmis sans son autorisation.  Si vous n'êtes 
pas le destinataire visé du présent message ou si vous l'avez reçu par erreur, 
veuillez cesser immédiatement de le lire et le supprimer, ainsi que toutes ses 
pièces jointes, de votre système.  La lecture, la distribution, la copie ou 
tout autre usage du présent message ou de ses pièces jointes par des personnes 
autres que le destinataire visé ne sont pas autorisés et pourraient être 
illégaux.  Si vous avez reçu ce courrier électronique par erreur, veuillez en 
aviser l'expéditeur.

Reply via email to