You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by Dan Connelly <da...@comcast.net> on 2007/06/15 23:25:08 UTC

How to invoke a CXF endpoint from a WCF client ?

Compare with:   How to invoke a WSIT endpoint from a WCF client ? 
<http://blogs.sun.com/arungupta/entry/how_to_invoke_a_wsit>

I am trying this process but for a CXF endpoint using latest C# Visual 
Studio 9 Express ("Orcas") from Microsoft.

I have not found a CXF sample WSDL that works cleanly with Orcas "Add 
Service Reference" function.

Any suggestions?

       -- Dan Connelly



Re: How to invoke a CXF endpoint from a WCF client ?

Posted by Dan Diephouse <da...@envoisolutions.com>.
Jim managed to commit a fix for this last night. We just pushed out a new
snapshot today which you can try which should hopefully fix things for you!

http://incubator.apache.org/cxf/download.html

Regards,
- Dan

On 6/18/07, Dan Diephouse <da...@envoisolutions.com> wrote:
>
> Just an FYI: I tried this out and its definitely still an issue. I think
> we'll be able to get an SVN patch in by tomorrow sometime at which point
> we'll let you know. Cheers,
> - Dan
>
> On 6/17/07, Dan Diephouse <da...@envoisolutions.com> wrote:
> >
> > This is definitely not valid per the spec... I think this might be a
> > problem with the JAXBDataBinding/JAXBSchemaInitializer code.
> >
> > Any chance you tried a snapshot build recently?
> > Thanks,
> > - Dan
> >
> > On 6/17/07, Dan Connelly < daniel.s.connelly@comcast.net> wrote:
> > >
> > > OK.   Don't blame VS Express ("Orcas") just yet.   The major problem
> > > appears to come from CXF (2.0 RC in my case).
> > >
> > > The snag shows up when Orcas runs svcutil.exe, which is does for "Add
> > > Service Reference ...".    This is the Microsoft tool equivalent of
> > > wsdl2java (or wsimport).
> > >
> > > Svcutil throws errors and fails to produce any C# artifacts when the
> > > WSDL it reads contains 2 or more element type definitions with the
> > > same
> > > name.    And, duplicate element types seems quite common in CXF
> > > samples
> > > (at least for xformat BindingType).
> > >
> > > For instance, for sample "hello_world_xml_bare" server returns the the
> > > following definitions in response to the ?wsdl URL:
> > >
> > > ...
> > > <wsdl:types>
> > >     <xs:schema attributeFormDefault="unqualified"
> > > elementFormDefault="unqualified"
> > > targetNamespace="http://apache.org/hello_world_xml_http/bare/types ">
> > >         <xs:element name="myComplexStruct" nillable="true"
> > > type="tns:myComplexStructType"/>
> > >         <xs:element name="requestType" nillable="true"
> > > type="xs:string"/>
> > >         <xs:element name="responseType" nillable="true"
> > > type="xs:string"/>
> > >         <xs:complexType name="myComplexStructType">
> > >             <xs:sequence>
> > >                 <xs:element form="qualified" name="elem1"
> > > type="xs:string"/>
> > >                 <xs:element form="qualified" name="elem2"
> > > type="xs:string"/>
> > >                 <xs:element form="qualified" name="elem3"
> > > type="xs:int"/>
> > >             </xs:sequence>
> > >         </xs:complexType>
> > >     <xs:element name="myComplexStruct" nillable="true"
> > > type="tns:myComplexStructType"/>
> > >     <xs:element name="responseType" nillable="true" type="xs:string"/>
> > >
> > >     <xs:element name="requestType" nillable="true" type="xs:string"/>
> > >     <xs:element name="responseType" nillable="true" type="xs:string"/>
> > >     </xs:schema>
> > >     <xsd:schema attributeFormDefault="unqualified"
> > > elementFormDefault="qualified"
> > > targetNamespace=" http://apache.org/hello_world_xml_http/bare ">
> > >         <xsd:import
> > > namespace="http://apache.org/hello_world_xml_http/bare/types "/>
> > >         <xsd:import
> > > namespace=" http://apache.org/hello_world_xml_http/bare/types"/>
> > >         <xsd:element name="in" nillable="true"
> > > type="ns0:myComplexStructType"/>
> > >         <xsd:element name="out" nillable="true"
> > > type="ns0:myComplexStructType"/>
> > >         <xsd:element name="out" nillable="true" type="xsd:string"/>
> > >     </xsd:schema>
> > > </wsdl:types>
> > > ...
> > >
> > >
> > > Note:
> > >
> > > This WSDL has 2 definitions each named   myComplextType, requestType,
> > > out
> > > It also has 3 definitions named:   responseType
> > >
> > > I suspect that the WSDL XML specification would not allow multiple
> > > declarations of element types with the same name.
> > >
> > > Whether or not the spec allows duplicate names, the fact it breaks the
> > > Microsoft tooling (which would be used frequently for client creation)
> > > is full justification for CXF eliminating its output of element type
> > > names in the synthetic WSDL.
> > >
> > >        -- Dan Connelly
> > >
> > >
> > > ------------------------------------------------------------------------------------------------------
> > >
> > >
> > > Dan Connelly wrote:
> > > > Compare with:   How to invoke a WSIT endpoint from a WCF client ?
> > > > <http://blogs.sun.com/arungupta/entry/how_to_invoke_a_wsit>
> > > >
> > > > I am trying this process but for a CXF endpoint using latest C#
> > > Visual
> > > > Studio 9 Express ("Orcas") from Microsoft.
> > > >
> > > > I have not found a CXF sample WSDL that works cleanly with Orcas
> > > "Add
> > > > Service Reference" function.
> > > >
> > > > Any suggestions?
> > > >
> > > >       -- Dan Connelly
> > > >
> > > >
> > > >
> > >
> > >
> >
> >
> > --
> > Dan Diephouse
> > Envoi Solutions
> > http://envoisolutions.com | http://netzooid.com/blog
>
>
>
>
> --
> Dan Diephouse
> Envoi Solutions
> http://envoisolutions.com | http://netzooid.com/blog
>



-- 
Dan Diephouse
Envoi Solutions
http://envoisolutions.com | http://netzooid.com/blog

Re: How to invoke a CXF endpoint from a WCF client ?

Posted by Dan Diephouse <da...@envoisolutions.com>.
Just an FYI: I tried this out and its definitely still an issue. I think
we'll be able to get an SVN patch in by tomorrow sometime at which point
we'll let you know. Cheers,
- Dan

On 6/17/07, Dan Diephouse <da...@envoisolutions.com> wrote:
>
> This is definitely not valid per the spec... I think this might be a
> problem with the JAXBDataBinding/JAXBSchemaInitializer code.
>
> Any chance you tried a snapshot build recently?
> Thanks,
> - Dan
>
> On 6/17/07, Dan Connelly <da...@comcast.net> wrote:
> >
> > OK.   Don't blame VS Express ("Orcas") just yet.   The major problem
> > appears to come from CXF (2.0 RC in my case).
> >
> > The snag shows up when Orcas runs svcutil.exe, which is does for "Add
> > Service Reference ...".    This is the Microsoft tool equivalent of
> > wsdl2java (or wsimport).
> >
> > Svcutil throws errors and fails to produce any C# artifacts when the
> > WSDL it reads contains 2 or more element type definitions with the same
> > name.    And, duplicate element types seems quite common in CXF samples
> > (at least for xformat BindingType).
> >
> > For instance, for sample "hello_world_xml_bare" server returns the the
> > following definitions in response to the ?wsdl URL:
> >
> > ...
> > <wsdl:types>
> >     <xs:schema attributeFormDefault="unqualified"
> > elementFormDefault="unqualified"
> > targetNamespace="http://apache.org/hello_world_xml_http/bare/types">
> >         <xs:element name="myComplexStruct" nillable="true"
> > type="tns:myComplexStructType"/>
> >         <xs:element name="requestType" nillable="true"
> > type="xs:string"/>
> >         <xs:element name="responseType" nillable="true"
> > type="xs:string"/>
> >         <xs:complexType name="myComplexStructType">
> >             <xs:sequence>
> >                 <xs:element form="qualified" name="elem1"
> > type="xs:string"/>
> >                 <xs:element form="qualified" name="elem2"
> > type="xs:string"/>
> >                 <xs:element form="qualified" name="elem3"
> > type="xs:int"/>
> >             </xs:sequence>
> >         </xs:complexType>
> >     <xs:element name="myComplexStruct" nillable="true"
> > type="tns:myComplexStructType"/>
> >     <xs:element name="responseType" nillable="true" type="xs:string"/>
> >     <xs:element name="requestType" nillable="true" type="xs:string"/>
> >     <xs:element name="responseType" nillable="true" type="xs:string"/>
> >     </xs:schema>
> >     <xsd:schema attributeFormDefault="unqualified"
> > elementFormDefault="qualified"
> > targetNamespace="http://apache.org/hello_world_xml_http/bare ">
> >         <xsd:import
> > namespace="http://apache.org/hello_world_xml_http/bare/types"/>
> >         <xsd:import
> > namespace=" http://apache.org/hello_world_xml_http/bare/types"/>
> >         <xsd:element name="in" nillable="true"
> > type="ns0:myComplexStructType"/>
> >         <xsd:element name="out" nillable="true"
> > type="ns0:myComplexStructType"/>
> >         <xsd:element name="out" nillable="true" type="xsd:string"/>
> >     </xsd:schema>
> > </wsdl:types>
> > ...
> >
> >
> > Note:
> >
> > This WSDL has 2 definitions each named   myComplextType, requestType,
> > out
> > It also has 3 definitions named:   responseType
> >
> > I suspect that the WSDL XML specification would not allow multiple
> > declarations of element types with the same name.
> >
> > Whether or not the spec allows duplicate names, the fact it breaks the
> > Microsoft tooling (which would be used frequently for client creation)
> > is full justification for CXF eliminating its output of element type
> > names in the synthetic WSDL.
> >
> >        -- Dan Connelly
> >
> >
> > ------------------------------------------------------------------------------------------------------
> >
> >
> > Dan Connelly wrote:
> > > Compare with:   How to invoke a WSIT endpoint from a WCF client ?
> > > <http://blogs.sun.com/arungupta/entry/how_to_invoke_a_wsit>
> > >
> > > I am trying this process but for a CXF endpoint using latest C# Visual
> >
> > > Studio 9 Express ("Orcas") from Microsoft.
> > >
> > > I have not found a CXF sample WSDL that works cleanly with Orcas "Add
> > > Service Reference" function.
> > >
> > > Any suggestions?
> > >
> > >       -- Dan Connelly
> > >
> > >
> > >
> >
> >
>
>
> --
> Dan Diephouse
> Envoi Solutions
> http://envoisolutions.com | http://netzooid.com/blog




-- 
Dan Diephouse
Envoi Solutions
http://envoisolutions.com | http://netzooid.com/blog

Re: How to invoke a CXF endpoint from a WCF client ?

Posted by Dan Diephouse <da...@envoisolutions.com>.
This is definitely not valid per the spec... I think this might be a problem
with the JAXBDataBinding/JAXBSchemaInitializer code.

Any chance you tried a snapshot build recently?
Thanks,
- Dan

On 6/17/07, Dan Connelly <da...@comcast.net> wrote:
>
> OK.   Don't blame VS Express ("Orcas") just yet.   The major problem
> appears to come from CXF (2.0 RC in my case).
>
> The snag shows up when Orcas runs svcutil.exe, which is does for "Add
> Service Reference ...".    This is the Microsoft tool equivalent of
> wsdl2java (or wsimport).
>
> Svcutil throws errors and fails to produce any C# artifacts when the
> WSDL it reads contains 2 or more element type definitions with the same
> name.    And, duplicate element types seems quite common in CXF samples
> (at least for xformat BindingType).
>
> For instance, for sample "hello_world_xml_bare" server returns the the
> following definitions in response to the ?wsdl URL:
>
> ...
> <wsdl:types>
>     <xs:schema attributeFormDefault="unqualified"
> elementFormDefault="unqualified"
> targetNamespace="http://apache.org/hello_world_xml_http/bare/types">
>         <xs:element name="myComplexStruct" nillable="true"
> type="tns:myComplexStructType"/>
>         <xs:element name="requestType" nillable="true" type="xs:string"/>
>         <xs:element name="responseType" nillable="true" type="xs:string"/>
>         <xs:complexType name="myComplexStructType">
>             <xs:sequence>
>                 <xs:element form="qualified" name="elem1"
> type="xs:string"/>
>                 <xs:element form="qualified" name="elem2"
> type="xs:string"/>
>                 <xs:element form="qualified" name="elem3" type="xs:int"/>
>             </xs:sequence>
>         </xs:complexType>
>     <xs:element name="myComplexStruct" nillable="true"
> type="tns:myComplexStructType"/>
>     <xs:element name="responseType" nillable="true" type="xs:string"/>
>     <xs:element name="requestType" nillable="true" type="xs:string"/>
>     <xs:element name="responseType" nillable="true" type="xs:string"/>
>     </xs:schema>
>     <xsd:schema attributeFormDefault="unqualified"
> elementFormDefault="qualified"
> targetNamespace="http://apache.org/hello_world_xml_http/bare">
>         <xsd:import
> namespace="http://apache.org/hello_world_xml_http/bare/types"/>
>         <xsd:import
> namespace="http://apache.org/hello_world_xml_http/bare/types"/>
>         <xsd:element name="in" nillable="true"
> type="ns0:myComplexStructType"/>
>         <xsd:element name="out" nillable="true"
> type="ns0:myComplexStructType"/>
>         <xsd:element name="out" nillable="true" type="xsd:string"/>
>     </xsd:schema>
> </wsdl:types>
> ...
>
>
> Note:
>
> This WSDL has 2 definitions each named   myComplextType, requestType, out
> It also has 3 definitions named:   responseType
>
> I suspect that the WSDL XML specification would not allow multiple
> declarations of element types with the same name.
>
> Whether or not the spec allows duplicate names, the fact it breaks the
> Microsoft tooling (which would be used frequently for client creation)
> is full justification for CXF eliminating its output of element type
> names in the synthetic WSDL.
>
>        -- Dan Connelly
>
>
> ------------------------------------------------------------------------------------------------------
>
>
> Dan Connelly wrote:
> > Compare with:   How to invoke a WSIT endpoint from a WCF client ?
> > <http://blogs.sun.com/arungupta/entry/how_to_invoke_a_wsit>
> >
> > I am trying this process but for a CXF endpoint using latest C# Visual
> > Studio 9 Express ("Orcas") from Microsoft.
> >
> > I have not found a CXF sample WSDL that works cleanly with Orcas "Add
> > Service Reference" function.
> >
> > Any suggestions?
> >
> >       -- Dan Connelly
> >
> >
> >
>
>


-- 
Dan Diephouse
Envoi Solutions
http://envoisolutions.com | http://netzooid.com/blog

Re: How to invoke a CXF endpoint from a WCF client ?

Posted by Dan Connelly <da...@comcast.net>.
OK.   Don't blame VS Express ("Orcas") just yet.   The major problem 
appears to come from CXF (2.0 RC in my case).

The snag shows up when Orcas runs svcutil.exe, which is does for "Add 
Service Reference ...".    This is the Microsoft tool equivalent of 
wsdl2java (or wsimport). 

Svcutil throws errors and fails to produce any C# artifacts when the 
WSDL it reads contains 2 or more element type definitions with the same 
name.    And, duplicate element types seems quite common in CXF samples 
(at least for xformat BindingType).

For instance, for sample "hello_world_xml_bare" server returns the the 
following definitions in response to the ?wsdl URL:

...
<wsdl:types>
    <xs:schema attributeFormDefault="unqualified" 
elementFormDefault="unqualified"                                       
targetNamespace="http://apache.org/hello_world_xml_http/bare/types">
        <xs:element name="myComplexStruct" nillable="true" 
type="tns:myComplexStructType"/>
        <xs:element name="requestType" nillable="true" type="xs:string"/>
        <xs:element name="responseType" nillable="true" type="xs:string"/>
        <xs:complexType name="myComplexStructType">
            <xs:sequence>
                <xs:element form="qualified" name="elem1" type="xs:string"/>
                <xs:element form="qualified" name="elem2" type="xs:string"/>
                <xs:element form="qualified" name="elem3" type="xs:int"/>
            </xs:sequence>
        </xs:complexType>
    <xs:element name="myComplexStruct" nillable="true" 
type="tns:myComplexStructType"/>
    <xs:element name="responseType" nillable="true" type="xs:string"/>
    <xs:element name="requestType" nillable="true" type="xs:string"/>
    <xs:element name="responseType" nillable="true" type="xs:string"/>
    </xs:schema>
    <xsd:schema attributeFormDefault="unqualified" 
elementFormDefault="qualified" 
targetNamespace="http://apache.org/hello_world_xml_http/bare">
        <xsd:import 
namespace="http://apache.org/hello_world_xml_http/bare/types"/>
        <xsd:import 
namespace="http://apache.org/hello_world_xml_http/bare/types"/>
        <xsd:element name="in" nillable="true" 
type="ns0:myComplexStructType"/>
        <xsd:element name="out" nillable="true" 
type="ns0:myComplexStructType"/>
        <xsd:element name="out" nillable="true" type="xsd:string"/>
    </xsd:schema>
</wsdl:types>
...


Note:

This WSDL has 2 definitions each named   myComplextType, requestType, out
It also has 3 definitions named:   responseType

I suspect that the WSDL XML specification would not allow multiple 
declarations of element types with the same name.

Whether or not the spec allows duplicate names, the fact it breaks the 
Microsoft tooling (which would be used frequently for client creation) 
is full justification for CXF eliminating its output of element type 
names in the synthetic WSDL.

       -- Dan Connelly

------------------------------------------------------------------------------------------------------


Dan Connelly wrote:
> Compare with:   How to invoke a WSIT endpoint from a WCF client ? 
> <http://blogs.sun.com/arungupta/entry/how_to_invoke_a_wsit>
>
> I am trying this process but for a CXF endpoint using latest C# Visual 
> Studio 9 Express ("Orcas") from Microsoft.
>
> I have not found a CXF sample WSDL that works cleanly with Orcas "Add 
> Service Reference" function.
>
> Any suggestions?
>
>       -- Dan Connelly
>
>
>