You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by sbrock <st...@broadridge.com> on 2009/09/15 18:08:16 UTC

gSOAP client failing to call Apache-CXF/XFire server...

The following WSDL was generated by the Apache-CXF framework for a web
service:

<?xml version="1.0" encoding="UTF-8" ?>
<wsdl:definitions name="QuoteService"
targetNamespace="http://api.webservice.quotews.broadridge.com/"
xmlns:ns1="http://schemas.xmlsoap.org/wsdl/soap/http"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="http://api.webservice.quotews.broadridge.com/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<wsdl:types>
<xs:schema attributeFormDefault="unqualified"
elementFormDefault="unqualified"
targetNamespace="http://api.webservice.quotews.broadridge.com/"
xmlns:tns="http://api.webservice.quotews.broadridge.com/"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:complexType name="baseWebServiceData">
<xs:sequence>
<xs:element minOccurs="0" name="extra" type="tns:MarshalledMap" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="MarshalledMap">
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="entry"
type="tns:IdentifiedObject" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="IdentifiedObject">
<xs:sequence>
<xs:element name="id" type="xs:anyType" />
<xs:element minOccurs="0" name="value" type="xs:anyType" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="QuoteServiceRequest">
<xs:complexContent>
<xs:extension base="tns:baseWebServiceData">
<xs:sequence>
<xs:element minOccurs="0" name="realtime" type="xs:boolean" />
<xs:element minOccurs="0" name="account" type="xs:string" />
<xs:element minOccurs="0" name="application" type="xs:string" />
<xs:element maxOccurs="unbounded" minOccurs="0" name="service"
type="xs:string" />
<xs:element maxOccurs="unbounded" minOccurs="0" name="symbol"
type="tns:SymbolInfo" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="SymbolInfo">
<xs:complexContent>
<xs:extension base="tns:baseWebServiceData">
<xs:sequence>
<xs:element minOccurs="0" name="type" type="xs:string" />
<xs:element maxOccurs="unbounded" minOccurs="0" name="symbols"
type="xs:string" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="QuoteServiceReply">
<xs:complexContent>
<xs:extension base="tns:baseWebServiceData">
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="quote"
type="tns:QuoteData" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="QuoteData">
<xs:complexContent>
<xs:extension base="tns:baseWebServiceData">
<xs:sequence>
<xs:element minOccurs="0" name="symbol" type="xs:string" />
<xs:element minOccurs="0" name="price" type="xs:decimal" />
<xs:element minOccurs="0" name="change" type="xs:decimal" />
<xs:element minOccurs="0" name="datetime" type="xs:string" />
<xs:element minOccurs="0" name="size" type="xs:long" />
<xs:element minOccurs="0" name="sharevolume" type="xs:long" />
<xs:element minOccurs="0" name="exchange" type="xs:string" />
<xs:element minOccurs="0" name="askprice" type="xs:decimal" />
<xs:element minOccurs="0" name="asksize" type="xs:long" />
<xs:element minOccurs="0" name="bidsize" type="xs:long" />
<xs:element minOccurs="0" name="bidprice" type="xs:decimal" />
<xs:element minOccurs="0" name="high" type="xs:decimal" />
<xs:element minOccurs="0" name="low" type="xs:decimal" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="getSymbolTypes" type="tns:getSymbolTypes" />
<xs:complexType name="getSymbolTypes">
<xs:sequence />
</xs:complexType>
<xs:element name="getSymbolTypesResponse" type="tns:getSymbolTypesResponse"
/>
<xs:complexType name="getSymbolTypesResponse">
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="return"
type="xs:string" />
</xs:sequence>
</xs:complexType>
<xs:element name="getQuotes" type="tns:getQuotes" />
<xs:complexType name="getQuotes">
<xs:sequence>
<xs:element minOccurs="0" name="arg0" type="tns:QuoteServiceRequest" />
</xs:sequence>
</xs:complexType>
<xs:element name="getQuotesResponse" type="tns:getQuotesResponse" />
<xs:complexType name="getQuotesResponse">
<xs:sequence>
<xs:element minOccurs="0" name="return" type="tns:QuoteServiceReply" />
</xs:sequence>
</xs:complexType>
</xs:schema>
</wsdl:types>
<wsdl:message name="getSymbolTypes">
<wsdl:part element="tns:getSymbolTypes" name="parameters" />
</wsdl:message>
<wsdl:message name="getSymbolTypesResponse">
<wsdl:part element="tns:getSymbolTypesResponse" name="parameters" />
</wsdl:message>
<wsdl:message name="getQuotes">
<wsdl:part element="tns:getQuotes" name="parameters" />
</wsdl:message>
<wsdl:message name="getQuotesResponse">
<wsdl:part element="tns:getQuotesResponse" name="parameters" />
</wsdl:message>
<wsdl:portType name="QuoteService">
<wsdl:operation name="getSymbolTypes">
<wsdl:input message="tns:getSymbolTypes" name="getSymbolTypes" />
<wsdl:output message="tns:getSymbolTypesResponse"
name="getSymbolTypesResponse" />
</wsdl:operation>
<wsdl:operation name="getQuotes">
<wsdl:input message="tns:getQuotes" name="getQuotes" />
<wsdl:output message="tns:getQuotesResponse" name="getQuotesResponse" />
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="QuoteServiceSoapBinding" type="tns:QuoteService">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="getSymbolTypes">
<soap:operation soapAction="" style="document" />
<wsdl:input name="getSymbolTypes">
<soap:body use="literal" />
</wsdl:input>
<wsdl:output name="getSymbolTypesResponse">
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getQuotes">
<soap:operation soapAction="" style="document" />
<wsdl:input name="getQuotes">
<soap:body use="literal" />
</wsdl:input>
<wsdl:output name="getQuotesResponse">
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="QuoteService">
<wsdl:port binding="tns:QuoteServiceSoapBinding" name="QuoteServicePort">
<soap:address
location="http://206.88.41.168:8086/quoteService/services/quoteService" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>

I am using gSOAP 2.6.0 to generate a client to call the getQuotes service.
The
issue I am having is that the request sent to the web service by the gSOAP
client does not have the correct namespace qualifieres on the payload. As a
result the Apache-CXF/XFire parser does not bind the payload to an object
and
the service receives an empty request.

Here is the request that is sent by the gSOAP client:

<?xml version="1.0" encoding="UTF-8" ?>
<SOAP-ENV:Envelope
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ns1="http://api.webservice.quotews.broadridge.com/"
xmlns:ns2="QuoteServiceSoapBinding"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Body id="_0">
<getQuotes xmlns="http://api.webservice.quotews.broadridge.com/"
xsi:type="ns1:getQuotes">
<arg0 xsi:type="ns1:QuoteServiceRequest">
<realtime>true</realtime>
<account xsi:type="xsd:string">111111101</account>
<application xsi:type="xsd:string">StockMarketGame</application>
<service xsi:type="xsd:string">eSignal</service>
<symbol xsi:type="ns1:SymbolInfo">
<type xsi:type="xsd:string">stock</type>
<symbols xsi:type="xsd:string">BR</symbols>
</symbol>
</arg0>
</getQuotes>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Is there a way to fix this problem by editing the WSDL? I have read postings
on
the web that mention editing the WSDL by hand, but I don't have a clue what
to
change to make things work.

Any suggestions are greatly appreciated.

Stu

-- 
View this message in context: http://www.nabble.com/gSOAP-client-failing-to-call-Apache-CXF-XFire-server...-tp25456882p25456882.html
Sent from the cxf-user mailing list archive at Nabble.com.


Re: gSOAP client failing to call Apache-CXF/XFire server...

Posted by Benson Margulies <bi...@gmail.com>.
IF you use JAXB you can use package-info.java to make everything
unqualified.


On Tue, Sep 15, 2009 at 1:33 PM, sbrock <st...@broadridge.com> wrote:

>
> Version 2.2.2 of CXF is being used.
>
> I notice in the WSDL that the default namespace is unqualified, but how do
> I
> make the rest of the document unqualified?  Do I just strip all the
> namespaces out by hand, or is there a CXF option that can be used when
> generating the WSDL?  From what I have seen, I agree that this is the crux
> of the issue, I am just not sure how to go about resolving it.
>
> Thank you for your assistance, it really is greatly appreciated.
>
> Stu
>
>
> bimargulies wrote:
> >
> > What version of CXF?
> >
> > I would recommend aiming for 'unqualified' for work with gsoap.
> >
> > On Tue, Sep 15, 2009 at 12:08 PM, sbrock
> > <st...@broadridge.com>wrote:
> >
> >>
> >> The following WSDL was generated by the Apache-CXF framework for a web
> >> service:
> >>
> >> <?xml version="1.0" encoding="UTF-8" ?>
> >> <wsdl:definitions name="QuoteService"
> >> targetNamespace="http://api.webservice.quotews.broadridge.com/"
> >> xmlns:ns1="http://schemas.xmlsoap.org/wsdl/soap/http"
> >> xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
> >> xmlns:tns="http://api.webservice.quotews.broadridge.com/"
> >> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
> >> xmlns:xsd="http://www.w3.org/2001/XMLSchema">
> >> <wsdl:types>
> >> <xs:schema attributeFormDefault="unqualified"
> >> elementFormDefault="unqualified"
> >> targetNamespace="http://api.webservice.quotews.broadridge.com/"
> >> xmlns:tns="http://api.webservice.quotews.broadridge.com/"
> >> xmlns:xs="http://www.w3.org/2001/XMLSchema">
> >> <xs:complexType name="baseWebServiceData">
> >> <xs:sequence>
> >> <xs:element minOccurs="0" name="extra" type="tns:MarshalledMap" />
> >> </xs:sequence>
> >> </xs:complexType>
> >> <xs:complexType name="MarshalledMap">
> >> <xs:sequence>
> >> <xs:element maxOccurs="unbounded" minOccurs="0" name="entry"
> >> type="tns:IdentifiedObject" />
> >> </xs:sequence>
> >> </xs:complexType>
> >> <xs:complexType name="IdentifiedObject">
> >> <xs:sequence>
> >> <xs:element name="id" type="xs:anyType" />
> >> <xs:element minOccurs="0" name="value" type="xs:anyType" />
> >> </xs:sequence>
> >> </xs:complexType>
> >> <xs:complexType name="QuoteServiceRequest">
> >> <xs:complexContent>
> >> <xs:extension base="tns:baseWebServiceData">
> >> <xs:sequence>
> >> <xs:element minOccurs="0" name="realtime" type="xs:boolean" />
> >> <xs:element minOccurs="0" name="account" type="xs:string" />
> >> <xs:element minOccurs="0" name="application" type="xs:string" />
> >> <xs:element maxOccurs="unbounded" minOccurs="0" name="service"
> >> type="xs:string" />
> >> <xs:element maxOccurs="unbounded" minOccurs="0" name="symbol"
> >> type="tns:SymbolInfo" />
> >> </xs:sequence>
> >> </xs:extension>
> >> </xs:complexContent>
> >> </xs:complexType>
> >> <xs:complexType name="SymbolInfo">
> >> <xs:complexContent>
> >> <xs:extension base="tns:baseWebServiceData">
> >> <xs:sequence>
> >> <xs:element minOccurs="0" name="type" type="xs:string" />
> >> <xs:element maxOccurs="unbounded" minOccurs="0" name="symbols"
> >> type="xs:string" />
> >> </xs:sequence>
> >> </xs:extension>
> >> </xs:complexContent>
> >> </xs:complexType>
> >> <xs:complexType name="QuoteServiceReply">
> >> <xs:complexContent>
> >> <xs:extension base="tns:baseWebServiceData">
> >> <xs:sequence>
> >> <xs:element maxOccurs="unbounded" minOccurs="0" name="quote"
> >> type="tns:QuoteData" />
> >> </xs:sequence>
> >> </xs:extension>
> >> </xs:complexContent>
> >> </xs:complexType>
> >> <xs:complexType name="QuoteData">
> >> <xs:complexContent>
> >> <xs:extension base="tns:baseWebServiceData">
> >> <xs:sequence>
> >> <xs:element minOccurs="0" name="symbol" type="xs:string" />
> >> <xs:element minOccurs="0" name="price" type="xs:decimal" />
> >> <xs:element minOccurs="0" name="change" type="xs:decimal" />
> >> <xs:element minOccurs="0" name="datetime" type="xs:string" />
> >> <xs:element minOccurs="0" name="size" type="xs:long" />
> >> <xs:element minOccurs="0" name="sharevolume" type="xs:long" />
> >> <xs:element minOccurs="0" name="exchange" type="xs:string" />
> >> <xs:element minOccurs="0" name="askprice" type="xs:decimal" />
> >> <xs:element minOccurs="0" name="asksize" type="xs:long" />
> >> <xs:element minOccurs="0" name="bidsize" type="xs:long" />
> >> <xs:element minOccurs="0" name="bidprice" type="xs:decimal" />
> >> <xs:element minOccurs="0" name="high" type="xs:decimal" />
> >> <xs:element minOccurs="0" name="low" type="xs:decimal" />
> >> </xs:sequence>
> >> </xs:extension>
> >> </xs:complexContent>
> >> </xs:complexType>
> >> <xs:element name="getSymbolTypes" type="tns:getSymbolTypes" />
> >> <xs:complexType name="getSymbolTypes">
> >> <xs:sequence />
> >> </xs:complexType>
> >> <xs:element name="getSymbolTypesResponse"
> >> type="tns:getSymbolTypesResponse"
> >> />
> >> <xs:complexType name="getSymbolTypesResponse">
> >> <xs:sequence>
> >> <xs:element maxOccurs="unbounded" minOccurs="0" name="return"
> >> type="xs:string" />
> >> </xs:sequence>
> >> </xs:complexType>
> >> <xs:element name="getQuotes" type="tns:getQuotes" />
> >> <xs:complexType name="getQuotes">
> >> <xs:sequence>
> >> <xs:element minOccurs="0" name="arg0" type="tns:QuoteServiceRequest" />
> >> </xs:sequence>
> >> </xs:complexType>
> >> <xs:element name="getQuotesResponse" type="tns:getQuotesResponse" />
> >> <xs:complexType name="getQuotesResponse">
> >> <xs:sequence>
> >> <xs:element minOccurs="0" name="return" type="tns:QuoteServiceReply" />
> >> </xs:sequence>
> >> </xs:complexType>
> >> </xs:schema>
> >> </wsdl:types>
> >> <wsdl:message name="getSymbolTypes">
> >> <wsdl:part element="tns:getSymbolTypes" name="parameters" />
> >> </wsdl:message>
> >> <wsdl:message name="getSymbolTypesResponse">
> >> <wsdl:part element="tns:getSymbolTypesResponse" name="parameters" />
> >> </wsdl:message>
> >> <wsdl:message name="getQuotes">
> >> <wsdl:part element="tns:getQuotes" name="parameters" />
> >> </wsdl:message>
> >> <wsdl:message name="getQuotesResponse">
> >> <wsdl:part element="tns:getQuotesResponse" name="parameters" />
> >> </wsdl:message>
> >> <wsdl:portType name="QuoteService">
> >> <wsdl:operation name="getSymbolTypes">
> >> <wsdl:input message="tns:getSymbolTypes" name="getSymbolTypes" />
> >> <wsdl:output message="tns:getSymbolTypesResponse"
> >> name="getSymbolTypesResponse" />
> >> </wsdl:operation>
> >> <wsdl:operation name="getQuotes">
> >> <wsdl:input message="tns:getQuotes" name="getQuotes" />
> >> <wsdl:output message="tns:getQuotesResponse" name="getQuotesResponse" />
> >> </wsdl:operation>
> >> </wsdl:portType>
> >> <wsdl:binding name="QuoteServiceSoapBinding" type="tns:QuoteService">
> >> <soap:binding style="document"
> >> transport="http://schemas.xmlsoap.org/soap/http" />
> >> <wsdl:operation name="getSymbolTypes">
> >> <soap:operation soapAction="" style="document" />
> >> <wsdl:input name="getSymbolTypes">
> >> <soap:body use="literal" />
> >> </wsdl:input>
> >> <wsdl:output name="getSymbolTypesResponse">
> >> <soap:body use="literal" />
> >> </wsdl:output>
> >> </wsdl:operation>
> >> <wsdl:operation name="getQuotes">
> >> <soap:operation soapAction="" style="document" />
> >> <wsdl:input name="getQuotes">
> >> <soap:body use="literal" />
> >> </wsdl:input>
> >> <wsdl:output name="getQuotesResponse">
> >> <soap:body use="literal" />
> >> </wsdl:output>
> >> </wsdl:operation>
> >> </wsdl:binding>
> >> <wsdl:service name="QuoteService">
> >> <wsdl:port binding="tns:QuoteServiceSoapBinding"
> name="QuoteServicePort">
> >> <soap:address
> >> location="http://206.88.41.168:8086/quoteService/services/quoteService"
> >> />
> >> </wsdl:port>
> >> </wsdl:service>
> >> </wsdl:definitions>
> >>
> >> I am using gSOAP 2.6.0 to generate a client to call the getQuotes
> >> service.
> >> The
> >> issue I am having is that the request sent to the web service by the
> >> gSOAP
> >> client does not have the correct namespace qualifieres on the payload.
> As
> >> a
> >> result the Apache-CXF/XFire parser does not bind the payload to an
> object
> >> and
> >> the service receives an empty request.
> >>
> >> Here is the request that is sent by the gSOAP client:
> >>
> >> <?xml version="1.0" encoding="UTF-8" ?>
> >> <SOAP-ENV:Envelope
> >> xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
> >> xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
> >> xmlns:ns1="http://api.webservice.quotews.broadridge.com/"
> >> xmlns:ns2="QuoteServiceSoapBinding"
> >> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> >> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
> >> <SOAP-ENV:Body id="_0">
> >> <getQuotes xmlns="http://api.webservice.quotews.broadridge.com/"
> >> xsi:type="ns1:getQuotes">
> >> <arg0 xsi:type="ns1:QuoteServiceRequest">
> >> <realtime>true</realtime>
> >> <account xsi:type="xsd:string">111111101</account>
> >> <application xsi:type="xsd:string">StockMarketGame</application>
> >> <service xsi:type="xsd:string">eSignal</service>
> >> <symbol xsi:type="ns1:SymbolInfo">
> >> <type xsi:type="xsd:string">stock</type>
> >> <symbols xsi:type="xsd:string">BR</symbols>
> >> </symbol>
> >> </arg0>
> >> </getQuotes>
> >> </SOAP-ENV:Body>
> >> </SOAP-ENV:Envelope>
> >>
> >> Is there a way to fix this problem by editing the WSDL? I have read
> >> postings
> >> on
> >> the web that mention editing the WSDL by hand, but I don't have a clue
> >> what
> >> to
> >> change to make things work.
> >>
> >> Any suggestions are greatly appreciated.
> >>
> >> Stu
> >>
> >> --
> >> View this message in context:
> >>
> http://www.nabble.com/gSOAP-client-failing-to-call-Apache-CXF-XFire-server...-tp25456882p25456882.html
> >> Sent from the cxf-user mailing list archive at Nabble.com.
> >>
> >>
> >
> >
>
> --
> View this message in context:
> http://www.nabble.com/gSOAP-client-failing-to-call-Apache-CXF-XFire-server...-tp25456882p25458398.html
> Sent from the cxf-user mailing list archive at Nabble.com.
>
>

Re: gSOAP client failing to call Apache-CXF/XFire server...

Posted by sbrock <st...@broadridge.com>.
Version 2.2.2 of CXF is being used.

I notice in the WSDL that the default namespace is unqualified, but how do I
make the rest of the document unqualified?  Do I just strip all the
namespaces out by hand, or is there a CXF option that can be used when
generating the WSDL?  From what I have seen, I agree that this is the crux
of the issue, I am just not sure how to go about resolving it.

Thank you for your assistance, it really is greatly appreciated.

Stu


bimargulies wrote:
> 
> What version of CXF?
> 
> I would recommend aiming for 'unqualified' for work with gsoap.
> 
> On Tue, Sep 15, 2009 at 12:08 PM, sbrock
> <st...@broadridge.com>wrote:
> 
>>
>> The following WSDL was generated by the Apache-CXF framework for a web
>> service:
>>
>> <?xml version="1.0" encoding="UTF-8" ?>
>> <wsdl:definitions name="QuoteService"
>> targetNamespace="http://api.webservice.quotews.broadridge.com/"
>> xmlns:ns1="http://schemas.xmlsoap.org/wsdl/soap/http"
>> xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
>> xmlns:tns="http://api.webservice.quotews.broadridge.com/"
>> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
>> xmlns:xsd="http://www.w3.org/2001/XMLSchema">
>> <wsdl:types>
>> <xs:schema attributeFormDefault="unqualified"
>> elementFormDefault="unqualified"
>> targetNamespace="http://api.webservice.quotews.broadridge.com/"
>> xmlns:tns="http://api.webservice.quotews.broadridge.com/"
>> xmlns:xs="http://www.w3.org/2001/XMLSchema">
>> <xs:complexType name="baseWebServiceData">
>> <xs:sequence>
>> <xs:element minOccurs="0" name="extra" type="tns:MarshalledMap" />
>> </xs:sequence>
>> </xs:complexType>
>> <xs:complexType name="MarshalledMap">
>> <xs:sequence>
>> <xs:element maxOccurs="unbounded" minOccurs="0" name="entry"
>> type="tns:IdentifiedObject" />
>> </xs:sequence>
>> </xs:complexType>
>> <xs:complexType name="IdentifiedObject">
>> <xs:sequence>
>> <xs:element name="id" type="xs:anyType" />
>> <xs:element minOccurs="0" name="value" type="xs:anyType" />
>> </xs:sequence>
>> </xs:complexType>
>> <xs:complexType name="QuoteServiceRequest">
>> <xs:complexContent>
>> <xs:extension base="tns:baseWebServiceData">
>> <xs:sequence>
>> <xs:element minOccurs="0" name="realtime" type="xs:boolean" />
>> <xs:element minOccurs="0" name="account" type="xs:string" />
>> <xs:element minOccurs="0" name="application" type="xs:string" />
>> <xs:element maxOccurs="unbounded" minOccurs="0" name="service"
>> type="xs:string" />
>> <xs:element maxOccurs="unbounded" minOccurs="0" name="symbol"
>> type="tns:SymbolInfo" />
>> </xs:sequence>
>> </xs:extension>
>> </xs:complexContent>
>> </xs:complexType>
>> <xs:complexType name="SymbolInfo">
>> <xs:complexContent>
>> <xs:extension base="tns:baseWebServiceData">
>> <xs:sequence>
>> <xs:element minOccurs="0" name="type" type="xs:string" />
>> <xs:element maxOccurs="unbounded" minOccurs="0" name="symbols"
>> type="xs:string" />
>> </xs:sequence>
>> </xs:extension>
>> </xs:complexContent>
>> </xs:complexType>
>> <xs:complexType name="QuoteServiceReply">
>> <xs:complexContent>
>> <xs:extension base="tns:baseWebServiceData">
>> <xs:sequence>
>> <xs:element maxOccurs="unbounded" minOccurs="0" name="quote"
>> type="tns:QuoteData" />
>> </xs:sequence>
>> </xs:extension>
>> </xs:complexContent>
>> </xs:complexType>
>> <xs:complexType name="QuoteData">
>> <xs:complexContent>
>> <xs:extension base="tns:baseWebServiceData">
>> <xs:sequence>
>> <xs:element minOccurs="0" name="symbol" type="xs:string" />
>> <xs:element minOccurs="0" name="price" type="xs:decimal" />
>> <xs:element minOccurs="0" name="change" type="xs:decimal" />
>> <xs:element minOccurs="0" name="datetime" type="xs:string" />
>> <xs:element minOccurs="0" name="size" type="xs:long" />
>> <xs:element minOccurs="0" name="sharevolume" type="xs:long" />
>> <xs:element minOccurs="0" name="exchange" type="xs:string" />
>> <xs:element minOccurs="0" name="askprice" type="xs:decimal" />
>> <xs:element minOccurs="0" name="asksize" type="xs:long" />
>> <xs:element minOccurs="0" name="bidsize" type="xs:long" />
>> <xs:element minOccurs="0" name="bidprice" type="xs:decimal" />
>> <xs:element minOccurs="0" name="high" type="xs:decimal" />
>> <xs:element minOccurs="0" name="low" type="xs:decimal" />
>> </xs:sequence>
>> </xs:extension>
>> </xs:complexContent>
>> </xs:complexType>
>> <xs:element name="getSymbolTypes" type="tns:getSymbolTypes" />
>> <xs:complexType name="getSymbolTypes">
>> <xs:sequence />
>> </xs:complexType>
>> <xs:element name="getSymbolTypesResponse"
>> type="tns:getSymbolTypesResponse"
>> />
>> <xs:complexType name="getSymbolTypesResponse">
>> <xs:sequence>
>> <xs:element maxOccurs="unbounded" minOccurs="0" name="return"
>> type="xs:string" />
>> </xs:sequence>
>> </xs:complexType>
>> <xs:element name="getQuotes" type="tns:getQuotes" />
>> <xs:complexType name="getQuotes">
>> <xs:sequence>
>> <xs:element minOccurs="0" name="arg0" type="tns:QuoteServiceRequest" />
>> </xs:sequence>
>> </xs:complexType>
>> <xs:element name="getQuotesResponse" type="tns:getQuotesResponse" />
>> <xs:complexType name="getQuotesResponse">
>> <xs:sequence>
>> <xs:element minOccurs="0" name="return" type="tns:QuoteServiceReply" />
>> </xs:sequence>
>> </xs:complexType>
>> </xs:schema>
>> </wsdl:types>
>> <wsdl:message name="getSymbolTypes">
>> <wsdl:part element="tns:getSymbolTypes" name="parameters" />
>> </wsdl:message>
>> <wsdl:message name="getSymbolTypesResponse">
>> <wsdl:part element="tns:getSymbolTypesResponse" name="parameters" />
>> </wsdl:message>
>> <wsdl:message name="getQuotes">
>> <wsdl:part element="tns:getQuotes" name="parameters" />
>> </wsdl:message>
>> <wsdl:message name="getQuotesResponse">
>> <wsdl:part element="tns:getQuotesResponse" name="parameters" />
>> </wsdl:message>
>> <wsdl:portType name="QuoteService">
>> <wsdl:operation name="getSymbolTypes">
>> <wsdl:input message="tns:getSymbolTypes" name="getSymbolTypes" />
>> <wsdl:output message="tns:getSymbolTypesResponse"
>> name="getSymbolTypesResponse" />
>> </wsdl:operation>
>> <wsdl:operation name="getQuotes">
>> <wsdl:input message="tns:getQuotes" name="getQuotes" />
>> <wsdl:output message="tns:getQuotesResponse" name="getQuotesResponse" />
>> </wsdl:operation>
>> </wsdl:portType>
>> <wsdl:binding name="QuoteServiceSoapBinding" type="tns:QuoteService">
>> <soap:binding style="document"
>> transport="http://schemas.xmlsoap.org/soap/http" />
>> <wsdl:operation name="getSymbolTypes">
>> <soap:operation soapAction="" style="document" />
>> <wsdl:input name="getSymbolTypes">
>> <soap:body use="literal" />
>> </wsdl:input>
>> <wsdl:output name="getSymbolTypesResponse">
>> <soap:body use="literal" />
>> </wsdl:output>
>> </wsdl:operation>
>> <wsdl:operation name="getQuotes">
>> <soap:operation soapAction="" style="document" />
>> <wsdl:input name="getQuotes">
>> <soap:body use="literal" />
>> </wsdl:input>
>> <wsdl:output name="getQuotesResponse">
>> <soap:body use="literal" />
>> </wsdl:output>
>> </wsdl:operation>
>> </wsdl:binding>
>> <wsdl:service name="QuoteService">
>> <wsdl:port binding="tns:QuoteServiceSoapBinding" name="QuoteServicePort">
>> <soap:address
>> location="http://206.88.41.168:8086/quoteService/services/quoteService"
>> />
>> </wsdl:port>
>> </wsdl:service>
>> </wsdl:definitions>
>>
>> I am using gSOAP 2.6.0 to generate a client to call the getQuotes
>> service.
>> The
>> issue I am having is that the request sent to the web service by the
>> gSOAP
>> client does not have the correct namespace qualifieres on the payload. As
>> a
>> result the Apache-CXF/XFire parser does not bind the payload to an object
>> and
>> the service receives an empty request.
>>
>> Here is the request that is sent by the gSOAP client:
>>
>> <?xml version="1.0" encoding="UTF-8" ?>
>> <SOAP-ENV:Envelope
>> xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
>> xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
>> xmlns:ns1="http://api.webservice.quotews.broadridge.com/"
>> xmlns:ns2="QuoteServiceSoapBinding"
>> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
>> <SOAP-ENV:Body id="_0">
>> <getQuotes xmlns="http://api.webservice.quotews.broadridge.com/"
>> xsi:type="ns1:getQuotes">
>> <arg0 xsi:type="ns1:QuoteServiceRequest">
>> <realtime>true</realtime>
>> <account xsi:type="xsd:string">111111101</account>
>> <application xsi:type="xsd:string">StockMarketGame</application>
>> <service xsi:type="xsd:string">eSignal</service>
>> <symbol xsi:type="ns1:SymbolInfo">
>> <type xsi:type="xsd:string">stock</type>
>> <symbols xsi:type="xsd:string">BR</symbols>
>> </symbol>
>> </arg0>
>> </getQuotes>
>> </SOAP-ENV:Body>
>> </SOAP-ENV:Envelope>
>>
>> Is there a way to fix this problem by editing the WSDL? I have read
>> postings
>> on
>> the web that mention editing the WSDL by hand, but I don't have a clue
>> what
>> to
>> change to make things work.
>>
>> Any suggestions are greatly appreciated.
>>
>> Stu
>>
>> --
>> View this message in context:
>> http://www.nabble.com/gSOAP-client-failing-to-call-Apache-CXF-XFire-server...-tp25456882p25456882.html
>> Sent from the cxf-user mailing list archive at Nabble.com.
>>
>>
> 
> 

-- 
View this message in context: http://www.nabble.com/gSOAP-client-failing-to-call-Apache-CXF-XFire-server...-tp25456882p25458398.html
Sent from the cxf-user mailing list archive at Nabble.com.


Re: gSOAP client failing to call Apache-CXF/XFire server...

Posted by Benson Margulies <bi...@gmail.com>.
What version of CXF?

I would recommend aiming for 'unqualified' for work with gsoap.

On Tue, Sep 15, 2009 at 12:08 PM, sbrock <st...@broadridge.com>wrote:

>
> The following WSDL was generated by the Apache-CXF framework for a web
> service:
>
> <?xml version="1.0" encoding="UTF-8" ?>
> <wsdl:definitions name="QuoteService"
> targetNamespace="http://api.webservice.quotews.broadridge.com/"
> xmlns:ns1="http://schemas.xmlsoap.org/wsdl/soap/http"
> xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
> xmlns:tns="http://api.webservice.quotews.broadridge.com/"
> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema">
> <wsdl:types>
> <xs:schema attributeFormDefault="unqualified"
> elementFormDefault="unqualified"
> targetNamespace="http://api.webservice.quotews.broadridge.com/"
> xmlns:tns="http://api.webservice.quotews.broadridge.com/"
> xmlns:xs="http://www.w3.org/2001/XMLSchema">
> <xs:complexType name="baseWebServiceData">
> <xs:sequence>
> <xs:element minOccurs="0" name="extra" type="tns:MarshalledMap" />
> </xs:sequence>
> </xs:complexType>
> <xs:complexType name="MarshalledMap">
> <xs:sequence>
> <xs:element maxOccurs="unbounded" minOccurs="0" name="entry"
> type="tns:IdentifiedObject" />
> </xs:sequence>
> </xs:complexType>
> <xs:complexType name="IdentifiedObject">
> <xs:sequence>
> <xs:element name="id" type="xs:anyType" />
> <xs:element minOccurs="0" name="value" type="xs:anyType" />
> </xs:sequence>
> </xs:complexType>
> <xs:complexType name="QuoteServiceRequest">
> <xs:complexContent>
> <xs:extension base="tns:baseWebServiceData">
> <xs:sequence>
> <xs:element minOccurs="0" name="realtime" type="xs:boolean" />
> <xs:element minOccurs="0" name="account" type="xs:string" />
> <xs:element minOccurs="0" name="application" type="xs:string" />
> <xs:element maxOccurs="unbounded" minOccurs="0" name="service"
> type="xs:string" />
> <xs:element maxOccurs="unbounded" minOccurs="0" name="symbol"
> type="tns:SymbolInfo" />
> </xs:sequence>
> </xs:extension>
> </xs:complexContent>
> </xs:complexType>
> <xs:complexType name="SymbolInfo">
> <xs:complexContent>
> <xs:extension base="tns:baseWebServiceData">
> <xs:sequence>
> <xs:element minOccurs="0" name="type" type="xs:string" />
> <xs:element maxOccurs="unbounded" minOccurs="0" name="symbols"
> type="xs:string" />
> </xs:sequence>
> </xs:extension>
> </xs:complexContent>
> </xs:complexType>
> <xs:complexType name="QuoteServiceReply">
> <xs:complexContent>
> <xs:extension base="tns:baseWebServiceData">
> <xs:sequence>
> <xs:element maxOccurs="unbounded" minOccurs="0" name="quote"
> type="tns:QuoteData" />
> </xs:sequence>
> </xs:extension>
> </xs:complexContent>
> </xs:complexType>
> <xs:complexType name="QuoteData">
> <xs:complexContent>
> <xs:extension base="tns:baseWebServiceData">
> <xs:sequence>
> <xs:element minOccurs="0" name="symbol" type="xs:string" />
> <xs:element minOccurs="0" name="price" type="xs:decimal" />
> <xs:element minOccurs="0" name="change" type="xs:decimal" />
> <xs:element minOccurs="0" name="datetime" type="xs:string" />
> <xs:element minOccurs="0" name="size" type="xs:long" />
> <xs:element minOccurs="0" name="sharevolume" type="xs:long" />
> <xs:element minOccurs="0" name="exchange" type="xs:string" />
> <xs:element minOccurs="0" name="askprice" type="xs:decimal" />
> <xs:element minOccurs="0" name="asksize" type="xs:long" />
> <xs:element minOccurs="0" name="bidsize" type="xs:long" />
> <xs:element minOccurs="0" name="bidprice" type="xs:decimal" />
> <xs:element minOccurs="0" name="high" type="xs:decimal" />
> <xs:element minOccurs="0" name="low" type="xs:decimal" />
> </xs:sequence>
> </xs:extension>
> </xs:complexContent>
> </xs:complexType>
> <xs:element name="getSymbolTypes" type="tns:getSymbolTypes" />
> <xs:complexType name="getSymbolTypes">
> <xs:sequence />
> </xs:complexType>
> <xs:element name="getSymbolTypesResponse" type="tns:getSymbolTypesResponse"
> />
> <xs:complexType name="getSymbolTypesResponse">
> <xs:sequence>
> <xs:element maxOccurs="unbounded" minOccurs="0" name="return"
> type="xs:string" />
> </xs:sequence>
> </xs:complexType>
> <xs:element name="getQuotes" type="tns:getQuotes" />
> <xs:complexType name="getQuotes">
> <xs:sequence>
> <xs:element minOccurs="0" name="arg0" type="tns:QuoteServiceRequest" />
> </xs:sequence>
> </xs:complexType>
> <xs:element name="getQuotesResponse" type="tns:getQuotesResponse" />
> <xs:complexType name="getQuotesResponse">
> <xs:sequence>
> <xs:element minOccurs="0" name="return" type="tns:QuoteServiceReply" />
> </xs:sequence>
> </xs:complexType>
> </xs:schema>
> </wsdl:types>
> <wsdl:message name="getSymbolTypes">
> <wsdl:part element="tns:getSymbolTypes" name="parameters" />
> </wsdl:message>
> <wsdl:message name="getSymbolTypesResponse">
> <wsdl:part element="tns:getSymbolTypesResponse" name="parameters" />
> </wsdl:message>
> <wsdl:message name="getQuotes">
> <wsdl:part element="tns:getQuotes" name="parameters" />
> </wsdl:message>
> <wsdl:message name="getQuotesResponse">
> <wsdl:part element="tns:getQuotesResponse" name="parameters" />
> </wsdl:message>
> <wsdl:portType name="QuoteService">
> <wsdl:operation name="getSymbolTypes">
> <wsdl:input message="tns:getSymbolTypes" name="getSymbolTypes" />
> <wsdl:output message="tns:getSymbolTypesResponse"
> name="getSymbolTypesResponse" />
> </wsdl:operation>
> <wsdl:operation name="getQuotes">
> <wsdl:input message="tns:getQuotes" name="getQuotes" />
> <wsdl:output message="tns:getQuotesResponse" name="getQuotesResponse" />
> </wsdl:operation>
> </wsdl:portType>
> <wsdl:binding name="QuoteServiceSoapBinding" type="tns:QuoteService">
> <soap:binding style="document"
> transport="http://schemas.xmlsoap.org/soap/http" />
> <wsdl:operation name="getSymbolTypes">
> <soap:operation soapAction="" style="document" />
> <wsdl:input name="getSymbolTypes">
> <soap:body use="literal" />
> </wsdl:input>
> <wsdl:output name="getSymbolTypesResponse">
> <soap:body use="literal" />
> </wsdl:output>
> </wsdl:operation>
> <wsdl:operation name="getQuotes">
> <soap:operation soapAction="" style="document" />
> <wsdl:input name="getQuotes">
> <soap:body use="literal" />
> </wsdl:input>
> <wsdl:output name="getQuotesResponse">
> <soap:body use="literal" />
> </wsdl:output>
> </wsdl:operation>
> </wsdl:binding>
> <wsdl:service name="QuoteService">
> <wsdl:port binding="tns:QuoteServiceSoapBinding" name="QuoteServicePort">
> <soap:address
> location="http://206.88.41.168:8086/quoteService/services/quoteService" />
> </wsdl:port>
> </wsdl:service>
> </wsdl:definitions>
>
> I am using gSOAP 2.6.0 to generate a client to call the getQuotes service.
> The
> issue I am having is that the request sent to the web service by the gSOAP
> client does not have the correct namespace qualifieres on the payload. As a
> result the Apache-CXF/XFire parser does not bind the payload to an object
> and
> the service receives an empty request.
>
> Here is the request that is sent by the gSOAP client:
>
> <?xml version="1.0" encoding="UTF-8" ?>
> <SOAP-ENV:Envelope
> xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
> xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
> xmlns:ns1="http://api.webservice.quotews.broadridge.com/"
> xmlns:ns2="QuoteServiceSoapBinding"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
> <SOAP-ENV:Body id="_0">
> <getQuotes xmlns="http://api.webservice.quotews.broadridge.com/"
> xsi:type="ns1:getQuotes">
> <arg0 xsi:type="ns1:QuoteServiceRequest">
> <realtime>true</realtime>
> <account xsi:type="xsd:string">111111101</account>
> <application xsi:type="xsd:string">StockMarketGame</application>
> <service xsi:type="xsd:string">eSignal</service>
> <symbol xsi:type="ns1:SymbolInfo">
> <type xsi:type="xsd:string">stock</type>
> <symbols xsi:type="xsd:string">BR</symbols>
> </symbol>
> </arg0>
> </getQuotes>
> </SOAP-ENV:Body>
> </SOAP-ENV:Envelope>
>
> Is there a way to fix this problem by editing the WSDL? I have read
> postings
> on
> the web that mention editing the WSDL by hand, but I don't have a clue what
> to
> change to make things work.
>
> Any suggestions are greatly appreciated.
>
> Stu
>
> --
> View this message in context:
> http://www.nabble.com/gSOAP-client-failing-to-call-Apache-CXF-XFire-server...-tp25456882p25456882.html
> Sent from the cxf-user mailing list archive at Nabble.com.
>
>

Re: gSOAP client failing to call Apache-CXF/XFire server...

Posted by sbrock <st...@broadridge.com>.
This did the trick, changing the default qualifiers, in the package-info.java
file, from unqualified to quailified did the trick.  The client is now
sending and receiving messages from the web service.  The reply is being
properly parsed as well.

Thank you, everyone, for your assistance; it is greately appreciated.

Stu


dkulp wrote:
> 
> 
> This is actually the opposite of what Benson said.  The WSDL CXF is
> generating 
> is unqualified, but gSOAP seems to be sending out all the data as
> qualified.   
> If you can modify the service, adding a package-info.java that specifies
> the 
> schema as qualified should make the generated wsdl qualified and thus
> accept 
> the gsoap message.
> 
> Dan
> 
> 
> On Tue September 15 2009 12:08:16 pm sbrock wrote:
>> The following WSDL was generated by the Apache-CXF framework for a web
>> service:
>> 
>> <?xml version="1.0" encoding="UTF-8" ?>
>> <wsdl:definitions name="QuoteService"
>> targetNamespace="http://api.webservice.quotews.broadridge.com/"
>> xmlns:ns1="http://schemas.xmlsoap.org/wsdl/soap/http"
>> xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
>> xmlns:tns="http://api.webservice.quotews.broadridge.com/"
>> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
>> xmlns:xsd="http://www.w3.org/2001/XMLSchema">
>> <wsdl:types>
>> <xs:schema attributeFormDefault="unqualified"
>> elementFormDefault="unqualified"
>> targetNamespace="http://api.webservice.quotews.broadridge.com/"
>> xmlns:tns="http://api.webservice.quotews.broadridge.com/"
>> xmlns:xs="http://www.w3.org/2001/XMLSchema">
>> <xs:complexType name="baseWebServiceData">
>> <xs:sequence>
>> <xs:element minOccurs="0" name="extra" type="tns:MarshalledMap" />
>> </xs:sequence>
>> </xs:complexType>
>> <xs:complexType name="MarshalledMap">
>> <xs:sequence>
>> <xs:element maxOccurs="unbounded" minOccurs="0" name="entry"
>> type="tns:IdentifiedObject" />
>> </xs:sequence>
>> </xs:complexType>
>> <xs:complexType name="IdentifiedObject">
>> <xs:sequence>
>> <xs:element name="id" type="xs:anyType" />
>> <xs:element minOccurs="0" name="value" type="xs:anyType" />
>> </xs:sequence>
>> </xs:complexType>
>> <xs:complexType name="QuoteServiceRequest">
>> <xs:complexContent>
>> <xs:extension base="tns:baseWebServiceData">
>> <xs:sequence>
>> <xs:element minOccurs="0" name="realtime" type="xs:boolean" />
>> <xs:element minOccurs="0" name="account" type="xs:string" />
>> <xs:element minOccurs="0" name="application" type="xs:string" />
>> <xs:element maxOccurs="unbounded" minOccurs="0" name="service"
>> type="xs:string" />
>> <xs:element maxOccurs="unbounded" minOccurs="0" name="symbol"
>> type="tns:SymbolInfo" />
>> </xs:sequence>
>> </xs:extension>
>> </xs:complexContent>
>> </xs:complexType>
>> <xs:complexType name="SymbolInfo">
>> <xs:complexContent>
>> <xs:extension base="tns:baseWebServiceData">
>> <xs:sequence>
>> <xs:element minOccurs="0" name="type" type="xs:string" />
>> <xs:element maxOccurs="unbounded" minOccurs="0" name="symbols"
>> type="xs:string" />
>> </xs:sequence>
>> </xs:extension>
>> </xs:complexContent>
>> </xs:complexType>
>> <xs:complexType name="QuoteServiceReply">
>> <xs:complexContent>
>> <xs:extension base="tns:baseWebServiceData">
>> <xs:sequence>
>> <xs:element maxOccurs="unbounded" minOccurs="0" name="quote"
>> type="tns:QuoteData" />
>> </xs:sequence>
>> </xs:extension>
>> </xs:complexContent>
>> </xs:complexType>
>> <xs:complexType name="QuoteData">
>> <xs:complexContent>
>> <xs:extension base="tns:baseWebServiceData">
>> <xs:sequence>
>> <xs:element minOccurs="0" name="symbol" type="xs:string" />
>> <xs:element minOccurs="0" name="price" type="xs:decimal" />
>> <xs:element minOccurs="0" name="change" type="xs:decimal" />
>> <xs:element minOccurs="0" name="datetime" type="xs:string" />
>> <xs:element minOccurs="0" name="size" type="xs:long" />
>> <xs:element minOccurs="0" name="sharevolume" type="xs:long" />
>> <xs:element minOccurs="0" name="exchange" type="xs:string" />
>> <xs:element minOccurs="0" name="askprice" type="xs:decimal" />
>> <xs:element minOccurs="0" name="asksize" type="xs:long" />
>> <xs:element minOccurs="0" name="bidsize" type="xs:long" />
>> <xs:element minOccurs="0" name="bidprice" type="xs:decimal" />
>> <xs:element minOccurs="0" name="high" type="xs:decimal" />
>> <xs:element minOccurs="0" name="low" type="xs:decimal" />
>> </xs:sequence>
>> </xs:extension>
>> </xs:complexContent>
>> </xs:complexType>
>> <xs:element name="getSymbolTypes" type="tns:getSymbolTypes" />
>> <xs:complexType name="getSymbolTypes">
>> <xs:sequence />
>> </xs:complexType>
>> <xs:element name="getSymbolTypesResponse"
>> type="tns:getSymbolTypesResponse"
>> />
>> <xs:complexType name="getSymbolTypesResponse">
>> <xs:sequence>
>> <xs:element maxOccurs="unbounded" minOccurs="0" name="return"
>> type="xs:string" />
>> </xs:sequence>
>> </xs:complexType>
>> <xs:element name="getQuotes" type="tns:getQuotes" />
>> <xs:complexType name="getQuotes">
>> <xs:sequence>
>> <xs:element minOccurs="0" name="arg0" type="tns:QuoteServiceRequest" />
>> </xs:sequence>
>> </xs:complexType>
>> <xs:element name="getQuotesResponse" type="tns:getQuotesResponse" />
>> <xs:complexType name="getQuotesResponse">
>> <xs:sequence>
>> <xs:element minOccurs="0" name="return" type="tns:QuoteServiceReply" />
>> </xs:sequence>
>> </xs:complexType>
>> </xs:schema>
>> </wsdl:types>
>> <wsdl:message name="getSymbolTypes">
>> <wsdl:part element="tns:getSymbolTypes" name="parameters" />
>> </wsdl:message>
>> <wsdl:message name="getSymbolTypesResponse">
>> <wsdl:part element="tns:getSymbolTypesResponse" name="parameters" />
>> </wsdl:message>
>> <wsdl:message name="getQuotes">
>> <wsdl:part element="tns:getQuotes" name="parameters" />
>> </wsdl:message>
>> <wsdl:message name="getQuotesResponse">
>> <wsdl:part element="tns:getQuotesResponse" name="parameters" />
>> </wsdl:message>
>> <wsdl:portType name="QuoteService">
>> <wsdl:operation name="getSymbolTypes">
>> <wsdl:input message="tns:getSymbolTypes" name="getSymbolTypes" />
>> <wsdl:output message="tns:getSymbolTypesResponse"
>> name="getSymbolTypesResponse" />
>> </wsdl:operation>
>> <wsdl:operation name="getQuotes">
>> <wsdl:input message="tns:getQuotes" name="getQuotes" />
>> <wsdl:output message="tns:getQuotesResponse" name="getQuotesResponse" />
>> </wsdl:operation>
>> </wsdl:portType>
>> <wsdl:binding name="QuoteServiceSoapBinding" type="tns:QuoteService">
>> <soap:binding style="document"
>> transport="http://schemas.xmlsoap.org/soap/http" />
>> <wsdl:operation name="getSymbolTypes">
>> <soap:operation soapAction="" style="document" />
>> <wsdl:input name="getSymbolTypes">
>> <soap:body use="literal" />
>> </wsdl:input>
>> <wsdl:output name="getSymbolTypesResponse">
>> <soap:body use="literal" />
>> </wsdl:output>
>> </wsdl:operation>
>> <wsdl:operation name="getQuotes">
>> <soap:operation soapAction="" style="document" />
>> <wsdl:input name="getQuotes">
>> <soap:body use="literal" />
>> </wsdl:input>
>> <wsdl:output name="getQuotesResponse">
>> <soap:body use="literal" />
>> </wsdl:output>
>> </wsdl:operation>
>> </wsdl:binding>
>> <wsdl:service name="QuoteService">
>> <wsdl:port binding="tns:QuoteServiceSoapBinding" name="QuoteServicePort">
>> <soap:address
>> location="http://206.88.41.168:8086/quoteService/services/quoteService"
>> />
>> </wsdl:port>
>> </wsdl:service>
>> </wsdl:definitions>
>> 
>> I am using gSOAP 2.6.0 to generate a client to call the getQuotes
>> service.
>> The
>> issue I am having is that the request sent to the web service by the
>> gSOAP
>> client does not have the correct namespace qualifieres on the payload. As
>> a
>> result the Apache-CXF/XFire parser does not bind the payload to an object
>> and
>> the service receives an empty request.
>> 
>> Here is the request that is sent by the gSOAP client:
>> 
>> <?xml version="1.0" encoding="UTF-8" ?>
>> <SOAP-ENV:Envelope
>> xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
>> xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
>> xmlns:ns1="http://api.webservice.quotews.broadridge.com/"
>> xmlns:ns2="QuoteServiceSoapBinding"
>> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
>> <SOAP-ENV:Body id="_0">
>> <getQuotes xmlns="http://api.webservice.quotews.broadridge.com/"
>> xsi:type="ns1:getQuotes">
>> <arg0 xsi:type="ns1:QuoteServiceRequest">
>> <realtime>true</realtime>
>> <account xsi:type="xsd:string">111111101</account>
>> <application xsi:type="xsd:string">StockMarketGame</application>
>> <service xsi:type="xsd:string">eSignal</service>
>> <symbol xsi:type="ns1:SymbolInfo">
>> <type xsi:type="xsd:string">stock</type>
>> <symbols xsi:type="xsd:string">BR</symbols>
>> </symbol>
>> </arg0>
>> </getQuotes>
>> </SOAP-ENV:Body>
>> </SOAP-ENV:Envelope>
>> 
>> Is there a way to fix this problem by editing the WSDL? I have read
>>  postings on
>> the web that mention editing the WSDL by hand, but I don't have a clue
>> what
>> to
>> change to make things work.
>> 
>> Any suggestions are greatly appreciated.
>> 
>> Stu
>> 
> 
> -- 
> Daniel Kulp
> dkulp@apache.org
> http://www.dankulp.com/blog
> 
> 

-- 
View this message in context: http://www.nabble.com/gSOAP-client-failing-to-call-Apache-CXF-XFire-server...-tp25456882p25491926.html
Sent from the cxf-user mailing list archive at Nabble.com.


Re: gSOAP client failing to call Apache-CXF/XFire server...

Posted by Daniel Kulp <dk...@apache.org>.
This is actually the opposite of what Benson said.  The WSDL CXF is generating 
is unqualified, but gSOAP seems to be sending out all the data as qualified.   
If you can modify the service, adding a package-info.java that specifies the 
schema as qualified should make the generated wsdl qualified and thus accept 
the gsoap message.

Dan


On Tue September 15 2009 12:08:16 pm sbrock wrote:
> The following WSDL was generated by the Apache-CXF framework for a web
> service:
> 
> <?xml version="1.0" encoding="UTF-8" ?>
> <wsdl:definitions name="QuoteService"
> targetNamespace="http://api.webservice.quotews.broadridge.com/"
> xmlns:ns1="http://schemas.xmlsoap.org/wsdl/soap/http"
> xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
> xmlns:tns="http://api.webservice.quotews.broadridge.com/"
> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema">
> <wsdl:types>
> <xs:schema attributeFormDefault="unqualified"
> elementFormDefault="unqualified"
> targetNamespace="http://api.webservice.quotews.broadridge.com/"
> xmlns:tns="http://api.webservice.quotews.broadridge.com/"
> xmlns:xs="http://www.w3.org/2001/XMLSchema">
> <xs:complexType name="baseWebServiceData">
> <xs:sequence>
> <xs:element minOccurs="0" name="extra" type="tns:MarshalledMap" />
> </xs:sequence>
> </xs:complexType>
> <xs:complexType name="MarshalledMap">
> <xs:sequence>
> <xs:element maxOccurs="unbounded" minOccurs="0" name="entry"
> type="tns:IdentifiedObject" />
> </xs:sequence>
> </xs:complexType>
> <xs:complexType name="IdentifiedObject">
> <xs:sequence>
> <xs:element name="id" type="xs:anyType" />
> <xs:element minOccurs="0" name="value" type="xs:anyType" />
> </xs:sequence>
> </xs:complexType>
> <xs:complexType name="QuoteServiceRequest">
> <xs:complexContent>
> <xs:extension base="tns:baseWebServiceData">
> <xs:sequence>
> <xs:element minOccurs="0" name="realtime" type="xs:boolean" />
> <xs:element minOccurs="0" name="account" type="xs:string" />
> <xs:element minOccurs="0" name="application" type="xs:string" />
> <xs:element maxOccurs="unbounded" minOccurs="0" name="service"
> type="xs:string" />
> <xs:element maxOccurs="unbounded" minOccurs="0" name="symbol"
> type="tns:SymbolInfo" />
> </xs:sequence>
> </xs:extension>
> </xs:complexContent>
> </xs:complexType>
> <xs:complexType name="SymbolInfo">
> <xs:complexContent>
> <xs:extension base="tns:baseWebServiceData">
> <xs:sequence>
> <xs:element minOccurs="0" name="type" type="xs:string" />
> <xs:element maxOccurs="unbounded" minOccurs="0" name="symbols"
> type="xs:string" />
> </xs:sequence>
> </xs:extension>
> </xs:complexContent>
> </xs:complexType>
> <xs:complexType name="QuoteServiceReply">
> <xs:complexContent>
> <xs:extension base="tns:baseWebServiceData">
> <xs:sequence>
> <xs:element maxOccurs="unbounded" minOccurs="0" name="quote"
> type="tns:QuoteData" />
> </xs:sequence>
> </xs:extension>
> </xs:complexContent>
> </xs:complexType>
> <xs:complexType name="QuoteData">
> <xs:complexContent>
> <xs:extension base="tns:baseWebServiceData">
> <xs:sequence>
> <xs:element minOccurs="0" name="symbol" type="xs:string" />
> <xs:element minOccurs="0" name="price" type="xs:decimal" />
> <xs:element minOccurs="0" name="change" type="xs:decimal" />
> <xs:element minOccurs="0" name="datetime" type="xs:string" />
> <xs:element minOccurs="0" name="size" type="xs:long" />
> <xs:element minOccurs="0" name="sharevolume" type="xs:long" />
> <xs:element minOccurs="0" name="exchange" type="xs:string" />
> <xs:element minOccurs="0" name="askprice" type="xs:decimal" />
> <xs:element minOccurs="0" name="asksize" type="xs:long" />
> <xs:element minOccurs="0" name="bidsize" type="xs:long" />
> <xs:element minOccurs="0" name="bidprice" type="xs:decimal" />
> <xs:element minOccurs="0" name="high" type="xs:decimal" />
> <xs:element minOccurs="0" name="low" type="xs:decimal" />
> </xs:sequence>
> </xs:extension>
> </xs:complexContent>
> </xs:complexType>
> <xs:element name="getSymbolTypes" type="tns:getSymbolTypes" />
> <xs:complexType name="getSymbolTypes">
> <xs:sequence />
> </xs:complexType>
> <xs:element name="getSymbolTypesResponse" type="tns:getSymbolTypesResponse"
> />
> <xs:complexType name="getSymbolTypesResponse">
> <xs:sequence>
> <xs:element maxOccurs="unbounded" minOccurs="0" name="return"
> type="xs:string" />
> </xs:sequence>
> </xs:complexType>
> <xs:element name="getQuotes" type="tns:getQuotes" />
> <xs:complexType name="getQuotes">
> <xs:sequence>
> <xs:element minOccurs="0" name="arg0" type="tns:QuoteServiceRequest" />
> </xs:sequence>
> </xs:complexType>
> <xs:element name="getQuotesResponse" type="tns:getQuotesResponse" />
> <xs:complexType name="getQuotesResponse">
> <xs:sequence>
> <xs:element minOccurs="0" name="return" type="tns:QuoteServiceReply" />
> </xs:sequence>
> </xs:complexType>
> </xs:schema>
> </wsdl:types>
> <wsdl:message name="getSymbolTypes">
> <wsdl:part element="tns:getSymbolTypes" name="parameters" />
> </wsdl:message>
> <wsdl:message name="getSymbolTypesResponse">
> <wsdl:part element="tns:getSymbolTypesResponse" name="parameters" />
> </wsdl:message>
> <wsdl:message name="getQuotes">
> <wsdl:part element="tns:getQuotes" name="parameters" />
> </wsdl:message>
> <wsdl:message name="getQuotesResponse">
> <wsdl:part element="tns:getQuotesResponse" name="parameters" />
> </wsdl:message>
> <wsdl:portType name="QuoteService">
> <wsdl:operation name="getSymbolTypes">
> <wsdl:input message="tns:getSymbolTypes" name="getSymbolTypes" />
> <wsdl:output message="tns:getSymbolTypesResponse"
> name="getSymbolTypesResponse" />
> </wsdl:operation>
> <wsdl:operation name="getQuotes">
> <wsdl:input message="tns:getQuotes" name="getQuotes" />
> <wsdl:output message="tns:getQuotesResponse" name="getQuotesResponse" />
> </wsdl:operation>
> </wsdl:portType>
> <wsdl:binding name="QuoteServiceSoapBinding" type="tns:QuoteService">
> <soap:binding style="document"
> transport="http://schemas.xmlsoap.org/soap/http" />
> <wsdl:operation name="getSymbolTypes">
> <soap:operation soapAction="" style="document" />
> <wsdl:input name="getSymbolTypes">
> <soap:body use="literal" />
> </wsdl:input>
> <wsdl:output name="getSymbolTypesResponse">
> <soap:body use="literal" />
> </wsdl:output>
> </wsdl:operation>
> <wsdl:operation name="getQuotes">
> <soap:operation soapAction="" style="document" />
> <wsdl:input name="getQuotes">
> <soap:body use="literal" />
> </wsdl:input>
> <wsdl:output name="getQuotesResponse">
> <soap:body use="literal" />
> </wsdl:output>
> </wsdl:operation>
> </wsdl:binding>
> <wsdl:service name="QuoteService">
> <wsdl:port binding="tns:QuoteServiceSoapBinding" name="QuoteServicePort">
> <soap:address
> location="http://206.88.41.168:8086/quoteService/services/quoteService" />
> </wsdl:port>
> </wsdl:service>
> </wsdl:definitions>
> 
> I am using gSOAP 2.6.0 to generate a client to call the getQuotes service.
> The
> issue I am having is that the request sent to the web service by the gSOAP
> client does not have the correct namespace qualifieres on the payload. As a
> result the Apache-CXF/XFire parser does not bind the payload to an object
> and
> the service receives an empty request.
> 
> Here is the request that is sent by the gSOAP client:
> 
> <?xml version="1.0" encoding="UTF-8" ?>
> <SOAP-ENV:Envelope
> xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
> xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
> xmlns:ns1="http://api.webservice.quotews.broadridge.com/"
> xmlns:ns2="QuoteServiceSoapBinding"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
> <SOAP-ENV:Body id="_0">
> <getQuotes xmlns="http://api.webservice.quotews.broadridge.com/"
> xsi:type="ns1:getQuotes">
> <arg0 xsi:type="ns1:QuoteServiceRequest">
> <realtime>true</realtime>
> <account xsi:type="xsd:string">111111101</account>
> <application xsi:type="xsd:string">StockMarketGame</application>
> <service xsi:type="xsd:string">eSignal</service>
> <symbol xsi:type="ns1:SymbolInfo">
> <type xsi:type="xsd:string">stock</type>
> <symbols xsi:type="xsd:string">BR</symbols>
> </symbol>
> </arg0>
> </getQuotes>
> </SOAP-ENV:Body>
> </SOAP-ENV:Envelope>
> 
> Is there a way to fix this problem by editing the WSDL? I have read
>  postings on
> the web that mention editing the WSDL by hand, but I don't have a clue what
> to
> change to make things work.
> 
> Any suggestions are greatly appreciated.
> 
> Stu
> 

-- 
Daniel Kulp
dkulp@apache.org
http://www.dankulp.com/blog