>- see footer for list info -<
Thanks, Russ
See below
Cheers
Terry
----- Original Message -----

> *From:* "Snake" <[EMAIL PROTECTED]>
> *To:* <[EMAIL PROTECTED]>, "'Coldfusion Development'" 
> <[email protected]>
> *Date:* Thu, 2 Oct 2008 18:20:56 +0100
> 
> When invoking a cfc as a web service you cannot have optional 
> arguments, they all must be passed, maybe this your issue.

Putting all params in the <cfinvoke> makes no difference. Same error.


> Also is there any reason to not make the original component a remote 
> web site rather than creating another CFC that wraps it ?

I must be having a thicko morning :-) but I don't actually understand 
that... I have no control over the webservice being consumed, and rather 
than having large <cfinvoke>s all over my site's code, I thought it 
would be useful to have the majority of the code, like authorisation and 
creation of the service object, all in a cfc and call from elsewhere in 
the code with small <cfinvoke>s that carry just the method name and the 
parameters. Not a good idea?


> Russ
> 
> -----Original Message-----
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED] On Behalf Of Terry Riley
> Sent: 02 October 2008 17:32
> To: [email protected]
> Subject: [CF-Dev] CFMX6.1 and web services
> 
> >- see footer for list info -<
> Long post warning....
> 
> Am a newcomer to web services, but learning fairly quickly.
> And I cannot move to CF7 or CF8 yet, so I hope the answer doesn't 
> absolutely involve any upgrade!
> 
> I have created cfcs and relevant functions for others to get data 
> from our server, and have created a number of discrete <cfinvoke>s to 
> pass data back to a particular web service (not CF).
> 
> If the service is consumed as follows:
> 
> <cfinvoke 
>       webservice = "http://xyz.com/service.php?class=webServices&wsdl";
>       method = "createPlayer"
>       returnvariable = "success"
>       username = 'joe'
>       password = 'pass'>
>               <cfinvokeargument name = "mitoo_player_id" 
> value="#new_player_id#" />
>               <cfinvokeargument name = "gr_player_firstname" 
> value="#new_player_firstname#" />
>               <cfinvokeargument name = "gr_player_lastname" 
> value="#new_player_lastname#" />
>               <cfinvokeargument name = "mitoo_team_ids" 
> value="#new_player_team_ids#" />
> </cfinvoke>
> <cfoutput>#success.success_code#</cfoutput>
> 
> I have no problems and get back the required success object. However, 
> I want to stick all of these invokes inside a cfc as functions, 
> requesting them as <cfinvokewith parameters from outside, as and when 
> > the need araises (ie trying to reuse some code like the generation 
> of the webservice object)
> 
> If the params are passed via an invoke such as:
> 
> <cfinvoke component="gr_webServices" method="createPlayer" 
> returnvariable="gr_player_id">
>       <cfinvokeargument name="mitoo_player_id" value=#new_player_id# />
>       <cfinvokeargument name="gr_player_firstname" 
> value=#new_player_firstname# />
>       <cfinvokeargument name="gr_player_lastname" 
> value=#new_player_lastname# />
>       <cfinvokeargument name="mitoo_team_ids" value=#new_player_team_ids# 
> />    
> </cfinvoke>
> 
> and the component contains:
> 
> <cfcomponent>
> 
>       <cffunction name="createPlayer" access="public" username="fred" 
> password="bloggs" returntype="numeric" output="no">
>               <cfargument name="mitoo_player_id" type="numeric" 
> required="true" hint="the latest player added">
>           <cfargument name="gr_player_firstname" type="string" 
> required="true" hint="the latest player's first name">
>           <cfargument name="gr_player_lastname" type="string" 
> required="true" hint="the latest player's last name">
>           <cfargument name="mitoo_team_ids" type="array" required="true" 
> hint="teams the player is signed to">
>               <cfset var gr_player_id = ''>
>               <cfscript>
>               ws = 
> createObject("webservice","http://xyz.com/service.php?class=webService
> s&ws
> dl");
>                       gr_player_id = ws.createPlayer(arguments);
>                       return gr_player_id;
>           </cfscript>
>       </cffunction> 
> </cfcomponent>
> 
> I get yer actual error screen which includes:
> 
> 
> Web service operation "createPlayer" with parameters 
> {{GR_PLAYER_FIRSTNAME={Terry},GR_PLAYER_LASTNAME={Riley},MITOO_PLAYER_
> ID={
> 1},MITOO_TEAM_IDS={[123]},}} could not be found. 
> 
> Now I've tried to simulate the the invoke in other ways, such as:
> 
> <cfset gr_webServices = createObject("webservice", 
> "http://xyz.com/service.php?class=webServices&wsdl";)>
> 
> <cfscript>
>       arguments = StructNew();
>       arguments.mitoo_team_ids = #new_player_team_ids#;
>       arguments.mitoo_player_id = #new_player_id#;
>       arguments.gr_player_firstname = #new_player_firstname#;
>       arguments.gr_player_lastname = #new_player_lastname#;
> 
>       success = gr_webServices.createPlayer(arguments);
>       return success;
> </cfscript>
> 
> and I get the same error as above.
> 
> It looks to me as though the invoke through the cfc (or through the 
> script method above) is creating another empty variable (see the 
> comma before the closing double bracket), but the arguments structure 
> prior to submission (whichever way I do it) contains only the four 
> pairs, not an empty fifth, as shown by using <cfdump>.
> 
> I've searched the googleverse for an answer, to no avail, so I though 
> I would ask my old gurus if they know the answer.
> 
> Any help - positive or negative - is welcome.
> 
> Terry
> http://www.confexdb.co.uk/
> 
> 
> -- 
> No virus found in this outgoing message.
> Checked by AVG. 
> Version: 7.5.523 / Virus Database: 270.7.5/1702 - Release Date: 
> 01/10/2008
> 09:05
> 
> 
> 
> _______________________________________________
> 
> For details on ALL mailing lists and for joining or leaving lists, go 
> to
> http://list.cfdeveloper.co.uk/mailman/listinfo
> 
> --
> CFDeveloper Sponsors:-
> >- cfdeveloper Hosting provided by www.cfmxhosting.co.uk -<
> >- Lists hosted by www.Gradwell.com -<
> >- CFdeveloper is run by Russ Michaels, feel free to volunteer your 
> help -<
> 
> 
> 
> 
> 
> -- 
> No virus found in this incoming message.
> Checked by AVG. 
> Version: 7.5.523 / Virus Database: 270.7.5/1702 - Release Date: 
> 01/10/2008 09:05
> 
> 


Terry
http://www.confexdb.co.uk/


-- 
No virus found in this outgoing message.
Checked by AVG. 
Version: 7.5.523 / Virus Database: 270.7.5/1703 - Release Date: 02/10/2008 07:46



_______________________________________________

For details on ALL mailing lists and for joining or leaving lists, go to 
http://list.cfdeveloper.co.uk/mailman/listinfo

--
CFDeveloper Sponsors:-
>- cfdeveloper Hosting provided by www.cfmxhosting.co.uk -<
>- Lists hosted by www.Gradwell.com -<
>- CFdeveloper is run by Russ Michaels, feel free to volunteer your help -<

Reply via email to