I finally got somewhere with this. It was most confusing because I didnât appreciate the complex data types were not just, for example, coldfusion arrays but java classes specific to this web service which happened to be an array.
So, what I did, was run the wsdl2java program against the web service, in order to see the java source files which allow you to see the data types of the parameters. I then ran a cfinvoke on the webservice and looked in my cffusion directory, found a newly created directory called âstubsâ and zipped up all of the class files that had been generated , renamed it as a jar file, and placed that file in my coldfusion java class path. I then created java objects in coldFusion of those data types, eg <cfset ArrayOfInt = CreateObject("java", "org.tempuri.ArrayOfInt")> Doing a cfdump on the object allowed me to understand how to instantiate the variables with the right data. Then, I wrote small amout of xml defining the SOAP header (user name and password etc) , converted it via xmlparse into xml_obj and then pulled the whole thing together like the following; <cfset args.pageList = ArrayOfInt> <cfscript> ws = CreateObject("webservice", "http://webservice.com/ blah.asmx?wsdl"); addSOAPRequestHeader(ws, "http://tempuri.org/", "dummy_string", xml_obj); gb=ws.GetMetricTimeByCustom(pageList=args.pageList,startTime=args.startTime,endTime=args.endTime,timeBreakdown=args.timeBreakdown,dataType=args.dataType); </cfscript> <cfset xml_obj = xmlparse(gb.getXmlDocument())> <cfdump var="#xml_obj#"> Hopefully this will save people some time. > I am struggling to find a clear example of how to interface CF 7 with > a web service, and was wondering if anyone here has managed to achieve > what I am trying to acheieve. > > The SOAP API takes the form of; > > <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xmlns:xsd="http://www.w3.org/2001/XMLSchema" > xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> > <soap:Header> > <CredentialSoapHeader xmlns="http://tempuri.org/"> > <Username>string</Username> > <Password>string</Password> > </CredentialSoapHeader> > </soap:Header> > <soap:Body> > <GetPageViewByCustom xmlns="http://tempuri.org/"> > <pageList> > <int>int</int> > <int>int</int> > </pageList> > <startTime>dateTime</startTime> > <endTime>dateTime</endTime> > <timeBreakdown>int</timeBreakdown> > </GetPageViewByCustom> > </soap:Body> > </soap:Envelope> > > What I am struggling with is forming complex objects of, for example, > type [timeBreakDown] in CF, I am continuously told Web service > operation 'myMethod()' with parameters {args} could not be found. > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~| Adobe® ColdFusion® 8 software 8 is the most important and dramatic release to date Get the Free Trial http://ad.doubleclick.net/clk;192386516;25150098;k Archive: http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:305304 Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.4