Hi,
I am using a flex form to send a mail. I want to know the status of the mail whether it is success or failure. For this I am using JobManager remote destination to get the status and response.
As soon as process submitted I am invoking the JobManager.getStatus(JobId), but it is resulting a Falut Event.
[RPC Fault faultString="DSC Invocation Resulted in Error: class flex.messaging.MessageException : Operation getStatus does not have a parameter called persistent" faultCode="Server.Processing" faultDetail="null"]
I can see in the console as "ReferenceError: Error #1056: Cannot create property LCJobId on mx.rpc.livecycle.JobId."
Anybody is having the same isssue. Please help me out.
I am placing my Flex app code.
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical"
backgroundGradientColors="[#FFFFFF,#000000]" backgroundGradientAlphas="[1,0.5]"
creationComplete="initApp()" >
<mx:Script>
<![CDATA[
import flash.net.registerClassAlias;
import mx.rpc.livecycle.JobStatus;
import mx.rpc.livecycle.JobId;
import mx.messaging.SubscriptionInfo;
import mx.controls.Alert;
import mx.messaging.channels.AMFChannel;
import mx.messaging.ChannelSet;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
private function initApp():void
{
var amfChannel:AMFChannel = new AMFChannel(null,
"http://localhost:8080/remoting/messagebroker/amf");
var channelSet:ChannelSet = new ChannelSet();
channelSet.addChannel(amfChannel);
lcesRemote.channelSet = channelSet;
jmService.channelSet = channelSet;
}
private function onResult(event:ResultEvent):void
{
Alert.show(event.result.toString() );
}
private function onFault(event:FaultEvent):void
{
Alert.show(event.fault.toString());
}
public var ji:JobId = new JobId();
private function onInvoke(event:ResultEvent):void
{
//Alert.show("Process submitted!!!" );
ji.jobId = (event.result as JobId).jobId;
ji.persistent = true;
jmService.getStatus(event.result);
}
private function sendMessage(event:MouseEvent) : void
{
messageXML.from = txtFrom.text;
messageXML.to = txtTo.text;
messageXML.subject = txtSubject.text;
messageXML.message = txtMessage.text;
var param:Object = new Object();
param['messageData'] = messageXML;
lcesRemote.invoke_Async(param);
}
private function getStatusHandler(event:ResultEvent):void
{
var res:JobStatus = event.result as JobStatus;
var resInt:int = res.statusCode;
if(res.statusCode == JobStatus.JOB_STATUS_COMPLETED)
{
jmService.getResponse(ji);
}
}
private function getResponseHandler(event:ResultEvent):void
{
}
]]>
</mx:Script>
<mx:XML id="messageXML">
<data>
<from></from>
<to></to>
<subject></subject>
<message></message>
</data>
</mx:XML>
<mx:RemoteObject id="lcesRemote" destination="MailingService/Process/EmailProcess"
result="onResult(event)" fault="onFault(event)">
<mx:method name="invoke_Async" result="onInvoke(event)" />
</mx:RemoteObject>
<mx:RemoteObject id="jmService" destination="JobManager" showBusyCursor="true" fault="onFault(event)">
<mx:method name="getStatus" result="getStatusHandler(event)"/>
<mx:method name="getResponse" result="getResponseHandler(event)"/>
</mx:RemoteObject>
<mx:HBox width="100%">
<mx:Label text="From:" width="62"/>
<mx:TextInput id="txtFrom" width="333"/>
</mx:HBox>
<mx:HBox width="100%">
<mx:Label text="To:" width="62"/>
<mx:TextInput id="txtTo" text="testlces@gmail.com" width="333"/>
</mx:HBox>
<mx:HBox width="100%">
<mx:Label text="Subject:" width="62"/>
<mx:TextInput id="txtSubject" width="333"/>
</mx:HBox>
<mx:HBox width="100%" >
<mx:Label text="Message:" width="62"/>
<mx:TextArea id="txtMessage" height="226" width="333"/>
</mx:HBox>
<mx:HBox width="100%" >
<mx:Spacer width="62"/>
<mx:Button id="btnSend" label="Send" click="sendMessage(event)" />
</mx:HBox>
</mx:Application>