From: GArlington on
On Jul 7, 9:13 pm, "marekss" <webforumsu...(a)macromedia.com> wrote:
> Here is my code;
Add
<cfprocessingdirective suppresswhitespace="Yes">
before <cfxml ...> tag and take <cfoutput>...</cfoutput> outside
<cfxml ...> tag too.

> <cfxml variable="xmlobject">
> <cfoutput>
<snap>
> </cfoutput>
> </cfxml>
> <cfset ws_obj = CreateObject("webservice",
> "http://host/webservices/orderentry/orderentry.asmx?WSDL")>
> <cfdump var="#ws_obj#">
> <cfset ws_ret_ = ws_obj.placeOrder(#xmlobject#)>

From: BKBK on
[i]> When I supply a string I get following error[/i]

What happens when you do something along these lines:

<cfsavecontent variable="xmlString"><?xml version="1.0" encoding="UTF-8" ?>
<Orders>
<Order>
...
etc. etc.
...
</Order>
</Orders>
</cfsavecontent>

<cfset ws_obj = CreateObject("webservice",
"http://host/webservices/orderentry/orderentry.asmx?WSDL")>
<cfset ws_ret_ = ws_obj.placeOrder(xmlString)>




From: marekss on
When I use <cfsavecontent variable="xmlobject"><?xml version="1.0"
encoding="UTF-8" ?>
as suggested above i get following error:
Web service operation "placeOrder" with parameters { N public Y 23423
43242 Joe Test 11 Test Ave Town Hall Bethlehem NY 112222323 US N
DC NC N} could not be found.

When i supply xmldocument generated by <cfxml> i get argument type mismatch.
are there complex data types that can not be represented using cf structures,
arrays etc.?
Is it possible that this web service I can consume only using .net?

Any help would be appreciated
Here is a part of the wsdl that defines placeOrder:



<s:element name="PlaceOrder">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="orderData">
<s:complexType>
<s:sequence>
<s:any/>
</s:sequence>
</s:complexType>
</s:element>
</s:sequence>
</s:complexType>
</s:element>

From: BKBK on
Just realized we've been thrashing around for nothing. There are as yet no
universal standards for passing XML as arguments to Web service methods.
Coldfusion has its own, as do .NET and Java.

The common currency among all web services is SOAP. Hence, one universal way
of passing XML, from any client to a web service on any platform, is as a SOAP
document.

In your case, you would construct a SOAP document which includes your XML. You
could then pass it to the web service using <cfhttp>. I googled and found a
http://www.houseoffusion.com/groups/cf-talk/thread.cfm/threadid:52942.



From: marekss on
Thanks so much BKBK for your help, after following your suggestions I was able to consume this web service using <cfhttp> method.