Per the example from the blog post it looks like 

<cfcomponent>
        <cfproperty name="userid" type="numeric" />
        <cfproperty name="username" type="string" />            
</cfcomponent>

In reality it has more properties but for testing I reduced it to this
but it doesn't work.

-Phil


On Thu, 7 Oct 2004 18:37:29 -0400, Roland Collins <[EMAIL PROTECTED]> wrote:
> What does userdata look like?
> 
> 
> 
> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf
> Of Phil Cruz
> Sent: Thursday, October 07, 2004 6:10 PM
> To: [EMAIL PROTECTED]
> Subject: Re: [CFCDev] return types and web services and manually creating
> wsdl
> 
> Ok. So I'm trying to return an array of CFCs.  It works if I call it
> locally but not if I call it as a web service (from CFMX). The method
> is:
> 
> <cffunction name="getUsers3" access="remote" returntype="array"
> output="false" hint="returns query of users">
>                 <cfargument name="dsn" type="string" required="true" />
>                 <cfargument name="orgID" type="numeric" required="true" />
>                 <cfargument name="username" type="string" required="false"
> default="" />
>                 <cfargument name="email" type="string" required="false"
> default="" />
>                 <cfscript>
>                         var userGateway =
> createObject("component","ttools.model.user.userGateway").init(trim(argument
> s.dsn));
>                         return
> this.toArrayOfObjects(userGateway.getUsers(username=arguments.username,email
> =arguments.email,orgid=arguments.orgid));
>                 </cfscript>
>         </cffunction>
> 
> and the toArrayOfObjects is
> 
> <cffunction name="toArrayOfObjects" access="public"
> displayName="toArray" hint="Use to convert a query to an array of
> objects" returnType="Array">
>                 <cfargument name="inputQuery" type="query" required="yes"
> hint="Query to convert" />
>                 <cfscript>
>                         var aReturnData = arrayNew(1);
>                         var tmpObject = "";
>                         var columnList = lcase(inputQuery.columnList);
>                         var columnName = "";
>                         var i = 0;
>                         var j = 0;
> 
>                         //loop over the query
>                         for(i=1; i LTE inputQuery.recordCount; i=i+1 ){
>                                 tmpObject = createObject("component",
> "ttools.model.user.userData");
>                                 // loop over the columns
>                                 for(j=1; j LTE listLen(columnList); j=j+1 ){
>                                         columnName = listGetAt(columnList,
> j);
>                                         tmpObject[columnName] =
> inputQuery[columnName][i];
>                                 }
>                                 arrayAppend(aReturnData, tmpObject);
>                         }
>                         return aReturnData;
>                 </cfscript>
>         </cffunction>
> 
> The error I get is
> 
>  Could not perform web service invocation "getUsers3" because
> AxisFault faultCode:
> {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
> faultSubcode: faultString: org.xml.sax.SAXException: No deserializer
> for {http://user.model.ttools}userData faultActor: faultNode:
> faultDetail: {http://xml.apache.org/axis/}stackTrace:
> org.xml.sax.SAXException: No deserializer for
> {http://user.model.ttools}userData at
> org.apache.axis.encoding.DeserializerImpl.onStartElement(DeserializerImpl.ja
> va:485)
> at
> org.apache.axis.encoding.DeserializerImpl.startElement(DeserializerImpl.java
> :428)
> at
> org.apache.axis.encoding.DeserializationContextImpl.startElement(Deserializa
> tionContextImpl.java:976)
> at
> org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:198)
> at
> org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:
> 722)
> at
> org.apache.axis.encoding.DeserializerImpl.startElement(DeserializerImpl.java
> :404)
> at
> org.apache.axis.encoding.DeserializationContextImpl.startElement(Deserializa
> tionContextImpl.java:976)
> at org.a...
> 
> Any ideas?
> 
> -Phil
> 
> On Thu, 7 Oct 2004 16:33:36 -0400, Roland Collins <[EMAIL PROTECTED]> wrote:
> > I doubt you'll get away with it - structs are known to be problems in WS
> > returns.  If you don't want to change the original service, you can just
> > create a Fa�ade for it.  Just wrap the CFC in another CFC that returns the
> > data sans structs!
> >
> >
> http://www.corfield.org/blog/index.cfm?do=blog.entry&entry=3C43DE71-CDC6-6D0
> > 4-BECCE2618B397E8B
> >
> >
----------------------------------------------------------
You are subscribed to cfcdev. To unsubscribe, send an email
to [EMAIL PROTECTED] with the words 'unsubscribe cfcdev'
in the message of the email.

CFCDev is run by CFCZone (www.cfczone.org) and supported
by Mindtool, Corporation (www.mindtool.com).

An archive of the CFCDev list is available at www.mail-archive.com/[EMAIL PROTECTED]

Reply via email to