I found the issue.  CF is returning the object type in all lowercase,
so instead of seeing com.mycompany.myapp.model.TestVO, I see
com.mycompany.myapp.model.testvo.

Is there a setting in one of the config files that would preserve the
case?  I currently have version 7,0,2,126814 of CF installed.

If I change everything to lowercase, it works correctly.

Any thoughts?

--- In flexcoders@yahoogroups.com, "Benoit Hediard" <[EMAIL PROTECTED]> wrote:
>
> To get a typed object on the Flex side, there is nothing specific to
do, you
> only need to correctly define :
> - in the CFC VO , all the <cfproperty>,
> Ex. : <cfproperty name="someString" type="String" />
> - in the service CFC <cffunction>, the correct returnType,
> Ex. : returntype="com.mycompany.myapp.model.TestVO"
> - in the AS3 VO, the alias metadata,
> Ex. : [RemoteClass(alias="com.mycompany.myapp.model.TestVO")]
> - in the AS3 VO, all the public var properties
> Ex. : public var someString:String;
> 
> You might also check 2 things, to see what's going on :
> - on the ColdFusion server side, check the CF Adapter logs in
> CFusionMX7/runtime/logs/coldfusion-out.log,
> - on the Flex client side, install ServiceCapture,
> http://kevinlangdon.com/serviceCapture/, you will see if the returned
> objects are correctly typed.
> 
> Benoit Hediard
> 
> -----Message d'origine-----
> De : flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED]
De la
> part de anopres
> Envoyé : jeudi 2 mars 2006 05:42
> À : flexcoders@yahoogroups.com
> Objet : [flexcoders] Re: Flex/Coldfusion connectivity test app
> 
> How do you use the typed object that cf returns?  All I seemt to get
is a
> generic object on the Flex side.  Do you have to run through a bunch
of set
> functions to move the properties returned into a pre-existing .as typed
> object?
> 
> Sorry for the noob question, but this one has been bugging me for a
while.
> 
> --- In flexcoders@yahoogroups.com, "Benoit Hediard" <ben@> wrote:
> >
> > Since some people seems to have issues to use the Flex/ColdFusion 
> > connectivity, here is a sample app to test your connectivity.
> > 
> > ------------------------
> > ColdFusion / Server side
> > ------------------------
> > 
> > Save the following value object CFC in 
> > {wwwroot}/com/mycompany/myapp/model/TestVO.cfc
> > <cfcomponent>
> > 
> > <cfproperty name="someString" type="String" /> <cfproperty 
> > name="someNumber" type="Numeric" />
> > 
> > <cffunction name="init" returntype="com.mycompany.myapp.model.TestVO">
> >     <cfscript>
> >     this.someString = "test";
> >     this.someNumber = 0;
> >     </cfscript>
> >     <cfreturn this />
> > </cffunction>
> > 
> > </cfcomponent>
> > 
> > Save the following remote service CFC in 
> > {wwwroot}/com/mycompany/myapp/service/TestService.cfc
> > <cfcomponent>
> > 
> > <cffunction name="getArray" access="remote" returntype="Array">
> >     <cfscript>
> >     var data = arrayNew(1);
> >     arrayAppend(data, createObject("component", 
> > "com.mycompany.myapp.model.TestVO").init());
> >     arrayAppend(data, createObject("component", 
> > "com.mycompany.myapp.model.TestVO").init());
> >     </cfscript>
> >     <cfreturn data />
> > </cffunction>
> > 
> > <cffunction name="getStruct" access="remote" returntype="Struct">
> >     <cfscript>
> >     var data = structNew();
> >     data.firstData = createObject("component", 
> > "com.mycompany.myapp.model.TestVO").init();
> >     data.secondData = createObject("component", 
> > "com.mycompany.myapp.model.TestVO").init();
> >     </cfscript>
> >     <cfreturn data />
> > </cffunction>
> > 
> > <cffunction name="receiveAndReturnVO" access="remote"
> > returntype="com.mycompany.myapp.model.TestVO">
> >     <cfargument name="vo" type="com.mycompany.myapp.model.TestVO">
> >     <cfreturn arguments.vo>
> > </cffunction>
> > 
> > </cfcomponent>
> > 
> > ------------------
> > Flex / Client side
> > ------------------
> > 
> > Save the following value object in {some test 
> > project}/com/mycompany/myapp/model/TestVO.as
> > package com.mycompany.myapp.model {
> > 
> >     [Bindable]
> >     [RemoteClass(alias="com.mycompany.myapp.model.TestVO")]
> >     
> >     public class TestVO {
> >             
> >             public var someString:String;
> >             public var someNumber:int;
> >             
> >             public function TestVO() {
> >                     someString = "";
> >                     someNumber = 0;
> >             }
> > 
> >     }
> >     
> > }
> > 
> > Save the following test application in Flex Builder 2 {some test 
> > project}/TestConnectivity.mxml <?xml version="1.0" encoding="utf-8"?> 
> > <mx:Application xmlns:mx="http://www.macromedia.com/2005/mxml";
> xmlns="*">
> >     
> >     <mx:RemoteObject id="testService"
> >             destination="ColdFusion"
> >             result="onResult(event)"
> >             source="com.mycompany.myapp.service.TestService"  />
> >     
> >     <mx:Script>
> >             <![CDATA[
> >                     import com.mycompany.myapp.model.TestVO;
> >                     import mx.controls.Alert;
> >                     import mx.rpc.events.ResultEvent;
> >                     import mx.utils.ObjectUtil;
> >                     
> >                     private function onResult(event:ResultEvent){
> >
> Alert.show(ObjectUtil.toString(event.result));
> >                     }
> >             ]]>
> >     </mx:Script>
> >     
> >     <mx:Button label="getArray" click="testService.getArray()" />
> > 
> >     <mx:Button label="getStruct" click="testService.getStruct()" />
> >     <!-- BUGS : display (null) value instead of objects, but objects are
> 
> > correctly returned... -->
> >     
> >     <mx:Button label="receiveAndReturnVO"
> > click="testService.receiveAndReturnVO(new TestVO())" />
> >     
> > </mx:Application>
> > 
> > Compile and run TestConnectivity.mxml (do not forget to set the 
> > compile argument to take into account your flex/coldfusion service 
> > definition,
> > "flex-enterprise-services.xml")
> > 
> > It should work, if your ColdFusion server is correctly configured
> with the
> > Flex/ColdFusion connectivity add-on.
> > You can also check the adapter logs in 
> > {CFusionMX7}/runtime/logs/coldfusion-out.log, very nice to see if
> the typed
> > objects are correctly received or sent by the ColdFusion adapter.
> > 
> > ----
> > BUGS
> > ----
> > 
> > We have faced several bugs with the Flex/ColdFusion connectivity.
> > 
> > 1. In the above sample app, getStruct() display (null) object in the
> Flex
> > app, but objects are correctly returned... Strange.
> > 
> > 2. Sometimes, the AS -> CFC does not map the full type correctly.
> > Example : the CFC might receive "TestVO" instead of 
> > "com.mycompany.myapp.model.TestVO", so the CFC argument type
> validation will
> > fail and you will get an error...
> > The current workaround is to remove typed object validation in remote 
> > service CFCs.
> > 
> > 3. You might have to add UPPERCASE setter functions for CFC -> AS 
> > translation to work correctly.
> > We don't know yet when it is necessary... But sometimes it does!
> >     
> > Example in TestVO.as :
> >     public function set SOMESTRING(value:String):void {
> >             this.someString = value;
> >     }
> >             
> >     public function set SOMENUMBER(someNumber:int):void {
> >             this.someNumber = someNumber;
> >     }
> > 
> > ---------------------------
> > COLDFUSION WITH CAIRNGORM 2
> > ---------------------------
> > 
> > In order to use your service CFCs in a cairngorm application, you
> just need
> > to add the RemoteObject definition in your ServiceLocator definition
> file.
> > 
> > Hope this helps!
> > 
> > Benoit Hediard
> >
> 
> 
> 
> 
> 
> 
> --
> Flexcoders Mailing List
> FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
> Search Archives:
http://www.mail-archive.com/flexcoders%40yahoogroups.com
> Yahoo! Groups Links
>







--
Flexcoders Mailing List
FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/flexcoders/

<*> To unsubscribe from this group, send an email to:
    [EMAIL PROTECTED]

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/
 



Reply via email to