Just because other consumers can use the web service doesn't mean it is interoperable. Then again, it could be interoperable and CF is just having a problem with it. But, I still say a web service should just act as an interface and hide implementation details from the consumer. I believe inheritance hierarchies are a perfect example of implementation details that should be hidden.

-Matt


On Jan 23, 2004, at 3:19 PM, Houk, Gary wrote:


The service currently interacts with other external vendors using Java and .NET. It seems as though that CF is the issue here from what I can see so far...

- Gary

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Matt Liotta
Sent: Friday, January 23, 2004 3:06 PM
To: [EMAIL PROTECTED]
Subject: Re: [CFCDev] Invoking .NET webservice with CF...


If you try creating a web service using a CFC that extends another I
believe you will find that the web service provides the API without
indicating anything about the implementation. Requiring that a consumer
understand an inheritance hierarchy means that your API doesn't hide
implementation details. Thus, I believe that the .NET web service to
which you refer is not interoperable and should be changed.

-Matt


On Jan 23, 2004, at 2:52 PM, Houk, Gary wrote:


All,

We have a web service that is written in VB.NET



The web service accepts a complex type as a parameter.



This type is called "WebOrder".



In .NET, this WebOrder class inherits from a base class called Order.



When exposed via a web service, the WSDL for the WebOrder looks like
this:



<s:complexType name="WebOrder">

- <s:complexContent mixed="false">

- <s:extension base="s0:Order">

- <s:sequence>

� <s:element
minOccurs="0"maxOccurs="1"name="WebOrderNumber"type="s:string"/>

� </s:sequence>

� </s:extension>

� </s:complexContent>

� </s:complexType>



(please note the extension base bit)



The problem is, when CF automatically generates the structs for the
web service, it seems that it doesn't recognize that WebOrder is
derived from Order.



If I use <cfset> to explicitly add all of the members or Order I get
an error that says that CF can't find a method that accepts those
parameters.



If I only use the unique property of WebOrder, the .NET web service
will not accept the order, because it doesn't contain any of the
required data for the Order base class.

Thanks,

- Gary


---------------------------------------------------------- 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]


---------------------------------------------------------- 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]


---------------------------------------------------------- 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