Anyone,
I've got a set of ColdFusion 6.1 CFC's that are currently being
consumed via the flash gateway (/flashServices/gateway) with Flash MX.
We are trying to consume the CFC's via the same gateway but with Flex
2 instead of Flash MX. We've changed the encoding to AMF0.
When we do this we are running into an issue where we are getting the
following error on the client:
TypeError: Error #1034: Type Coercion failed: cannot convert
[EMAIL PROTECTED] to mx.messaging.messages.ErrorMessage"
And the following error in the server "flash.log" file:
"You are not allowed to access the service null. The service is not in
the configured whitelist."
I have not found any references to people successfully connecting to
CF6.1 FlexGateway without using webservices... so really wondering if
this is even possible.
Any ideas? Code follows.
TIA
Tom Kirstein
========= Current version of Code used =============
=== NOTE: The MarketingCalenderRO is instantiated ==
=== in the calling app ==
====================================================
======== MAPNetConnectionChannel.as =============
package com.mindoverdata.client.marketingcalendar
{
import mx.messaging.channels.AMFChannel;
import flash.net.ObjectEncoding;
public class MAPNetConnectionChannel extends AMFChannel
{
public function MAPNetConnectionChannel(id:String, uri:String)
{
super(id, uri);
this.netConnection.objectEncoding = ObjectEncoding.AMF0;
this.pollingEnabled = false;
}
override public function get protocol():String {
return "http";
}
}
}
========== MarketingCalenderRO.as ================
package model
{
import mx.rpc.remoting.RemoteObject;
import mx.messaging.ChannelSet;
import mx.messaging.Channel;
import flash.net.ObjectEncoding;
import mx.messaging.channels.AMFChannel;
import mx.messaging.channels.NetConnectionChannel;
import
com.mindoverdata.client.marketingcalendar.MAPNetConnectionChannel;
import mx.rpc.events.FaultEvent;
public dynamic class MarketingCalenderRO extends RemoteObject
{
public function MarketingCalenderRO(destination:String=null)
{
trace ("MArketingCalenderRO()");
//TODO: implement function
super(destination);
this.source = "components.marketingcalendar";
this.channelSet = getChannelSet();
this.addEventListener(FaultEvent.FAULT,onFault);
}
private function onFault (fault:FaultEvent):void {
trace ("DANGER!!!");
}
private function getChannelSet():ChannelSet {
var cSet:ChannelSet = new ChannelSet();
//This works with CF 7.0.2
//var customChannel:Channel = new AMFChannel("my-cfamf",
"http://dev.client.myDomain.com/flex2gateway/");
//***********************************************************************************8
//these lines are trying to get into the
flashservices/gateway
//var customChannel:AMFChannel= new
AMFChannel("my-cfamf",
"http://dev.client.myDomain.com/flashservices/gateway/");
//var customChannel:NetConnectionChannel= new
NetConnectionChannel("my-cfamf",
"http://dev.client.myDomain.com/flashservices/gateway/");
var customChannel:MAPNetConnectionChannel= new
MAPNetConnectionChannel("my-cfamf",
"http://dev.client.myDomain.com/flashservices/gateway/");
customChannel.netConnection.objectEncoding =
ObjectEncoding.AMF0;
// Add the Channel to the ChannelSet.
//end flash services code
//***********************************************************************************8
cSet.addChannel(customChannel);
return cSet;
}
}
}