You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by Jay Guidos <ja...@4dark.com> on 2008/09/20 17:09:36 UTC
Consuming web services from .NET containing DataSets
Hi All,
I am returning to web service programming after several years of other
tasks.It's kind of rusty but coming back to me! Anyway I have what
seems to be a fairly well known problem, in that I need to consume a web
service that is giving out .NET un-typed DataSets in a document/literal
service.
I tried running wsdl2java -client on a wsdl that had the following type
for an output response:
<xsd:element name="GetBlotterResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element minOccurs="0"
name="GetBlotterResult" nillable="true">
<xsd:complexType>
<xsd:annotation>
<xsd:appinfo>
<ActualType Name="DataSet"
Namespace="http://schemas.datacontract.org/2004/07/System.Data"
xmlns="http://schemas.microsoft.com/2003/10/Serialization/"/>
</xsd:appinfo>
</xsd:annotation>
<xsd:sequence>
<xsd:element ref="xsd:schema"/>
<xsd:any/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
The offending line seems to be:
<xsd:element ref="xsd:schema"/>
This causes wsdl2java to die with the following error:
WSDLToJava Error: Thrown by JAXB : undefined element declaration
'xsd:schema'
As others have lamented, the above WSDL is reported as valid by the 3
WSDL validators I have washed it through, but there does not seem to be
anyone who supports this kind of dynamically typed responses except
.NET. I have tried Glassfish, JWSDP 2.0, Axis 2 and now CFX in both
JAX-RPC and JAX-WS approaches and all are a no-go. I would like to stay
with CFX because your stuff seems to work beautifully with groovy, my
new favourite language.
So, since I don't have the luxury of getting this service changed, what
are my options? Suggestions, anyone?
Jay Guidos
Dark Technologies
Re: Consuming web services from .NET containing DataSets
Posted by Daniel Kulp <dk...@apache.org>.
Yea, this seems to be a common issue with JAXB. :-(
The ONLY workaround I've seen is to copy the wsdl locally and either add an
import for the schema namespace or to convert the:
<xsd:element ref="xsd:schema"/>
<xsd:any/>
to:
<xsd:any maxOccurs="2"/>
or similar and then use the local wsdl.
:-(
Dan
On Saturday 20 September 2008 11:09:36 am Jay Guidos wrote:
> Hi All,
>
>
>
> I am returning to web service programming after several years of other
> tasks.It's kind of rusty but coming back to me! Anyway I have what
> seems to be a fairly well known problem, in that I need to consume a web
> service that is giving out .NET un-typed DataSets in a document/literal
> service.
>
>
>
> I tried running wsdl2java -client on a wsdl that had the following type
> for an output response:
>
>
>
> <xsd:element name="GetBlotterResponse">
>
> <xsd:complexType>
>
> <xsd:sequence>
>
> <xsd:element minOccurs="0"
> name="GetBlotterResult" nillable="true">
>
> <xsd:complexType>
>
> <xsd:annotation>
>
> <xsd:appinfo>
>
> <ActualType Name="DataSet"
>
>
> Namespace="http://schemas.datacontract.org/2004/07/System.Data"
>
>
> xmlns="http://schemas.microsoft.com/2003/10/Serialization/"/>
>
> </xsd:appinfo>
>
> </xsd:annotation>
>
> <xsd:sequence>
>
> <xsd:element ref="xsd:schema"/>
>
> <xsd:any/>
>
> </xsd:sequence>
>
> </xsd:complexType>
>
> </xsd:element>
>
> </xsd:sequence>
>
> </xsd:complexType>
>
> </xsd:element>
>
>
>
> The offending line seems to be:
>
>
>
> <xsd:element ref="xsd:schema"/>
>
>
>
> This causes wsdl2java to die with the following error:
>
>
>
> WSDLToJava Error: Thrown by JAXB : undefined element declaration
> 'xsd:schema'
>
>
>
> As others have lamented, the above WSDL is reported as valid by the 3
> WSDL validators I have washed it through, but there does not seem to be
> anyone who supports this kind of dynamically typed responses except
> .NET. I have tried Glassfish, JWSDP 2.0, Axis 2 and now CFX in both
> JAX-RPC and JAX-WS approaches and all are a no-go. I would like to stay
> with CFX because your stuff seems to work beautifully with groovy, my
> new favourite language.
>
>
>
> So, since I don't have the luxury of getting this service changed, what
> are my options? Suggestions, anyone?
>
>
>
> Jay Guidos
>
> Dark Technologies
--
Daniel Kulp
dkulp@apache.org
http://www.dankulp.com/blog