Aegis would be more helpful here. It's very fond of xsi:type.

On Tue, Oct 12, 2010 at 1:42 PM, Daniel Kulp <dk...@apache.org> wrote:
> On Tuesday 12 October 2010 2:01:41 am blaz wrote:
>> Hi,
>> I'm calling a cxf webservice from ksoap2, and ksoap2 seems to need the
>> datatype directly in the SoapResponse in order to unmarshall it, in
>> fact the datatype is present in the soaprequest from ksoap2.
>
> That would be a bug in ksoap2 as it should not be relying on those.   From
> what I can tell, there isn't a way to force JAXB to generate xsi:type's on all
> the elements so I don't really think there is a way to accomplish this.
>
> Dan
>
>
>> Is there a way to enable it with cxf Distributed-OSGI ? Am I doing
>> something wrong ?
>> Here are the request elements:
>>
>> wsdl auto generated by cxf-dosgi:
>> <wsdl:definitions name="Watchable"
>> targetNamespace="http://watchable.portal.osgi.cnam.org/";
>> xmlns:ns1="http://schemas.xmlsoap.org/wsdl/soap/http";
>> xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/";
>> xmlns:tns="http://watchable.portal.osgi.cnam.org/";
>> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";
>> xmlns:xsd="http://www.w3.org/2001/XMLSchema";>
>>   <wsdl:types>
>> <xsd:schema attributeFormDefault="qualified"
>> elementFormDefault="qualified"
>> targetNamespace="http://watchable.portal.osgi.cnam.org/";
>> xmlns:tns="http://watchable.portal.osgi.cnam.org/";
>> xmlns:xsd="http://www.w3.org/2001/XMLSchema";>
>>   <xsd:complexType name="string2stringMap">
>>     <xsd:sequence>
>>       <xsd:element maxOccurs="unbounded" minOccurs="0" name="entry">
>>         <xsd:complexType>
>>           <xsd:sequence>
>>             <xsd:element name="key" type="xsd:string" />
>>             <xsd:element minOccurs="0" name="value" type="xsd:string" />
>>           </xsd:sequence>
>>         </xsd:complexType>
>>       </xsd:element>
>>     </xsd:sequence>
>>   </xsd:complexType>
>>   <xsd:element name="getWatchableList" type="tns:getWatchableList" />
>>   <xsd:complexType name="getWatchableList">
>>     <xsd:sequence>
>>       <xsd:element minOccurs="0" name="arg0" nillable="true"
>> type="xsd:string" />
>>     </xsd:sequence>
>>   </xsd:complexType>
>>   <xsd:element name="getWatchableListResponse"
>> type="tns:getWatchableListResponse" />
>>   <xsd:complexType name="getWatchableListResponse">
>>     <xsd:sequence>
>>       <xsd:element minOccurs="0" name="return" nillable="true"
>> type="tns:string2stringMap" />
>>     </xsd:sequence>
>>   </xsd:complexType>
>> </xsd:schema>
>>   </wsdl:types>
>>   <wsdl:message name="getWatchableListResponse">
>>     <wsdl:part element="tns:getWatchableListResponse" name="parameters">
>>     </wsdl:part>
>>   </wsdl:message>
>>   <wsdl:message name="getWatchableList">
>>     <wsdl:part element="tns:getWatchableList" name="parameters">
>>     </wsdl:part>
>>   </wsdl:message>
>>   <wsdl:portType name="WatchablePortType">
>>     <wsdl:operation name="getWatchableList">
>>       <wsdl:input message="tns:getWatchableList" name="getWatchableList">
>>     </wsdl:input>
>>       <wsdl:output message="tns:getWatchableListResponse"
>> name="getWatchableListResponse">
>>     </wsdl:output>
>>     </wsdl:operation>
>>   </wsdl:portType>
>>   <wsdl:binding name="WatchableSoapBinding" type="tns:WatchablePortType">
>>     <soap:binding style="document"
>> transport="http://schemas.xmlsoap.org/soap/http"; />
>>     <wsdl:operation name="getWatchableList">
>>       <soap:operation soapAction="" style="document" />
>>       <wsdl:input name="getWatchableList">
>>         <soap:body use="literal" />
>>       </wsdl:input>
>>       <wsdl:output name="getWatchableListResponse">
>>         <soap:body use="literal" />
>>       </wsdl:output>
>>     </wsdl:operation>
>>   </wsdl:binding>
>>   <wsdl:service name="Watchable">
>>     <wsdl:port binding="tns:WatchableSoapBinding" name="WatchablePort">
>>       <soap:address location="http://blaz.is-a-geek.org:8888/watchable/"; />
>>     </wsdl:port>
>>   </wsdl:service>
>> </wsdl:definitions>
>>
>> SoapRequest from ksoap2:
>> <v:Envelope xmlns:c="http://schemas.xmlsoap.org/soap/encoding/";
>> xmlns:d="http://www.w3.org/2001/XMLSchema";
>> xmlns:i="http://www.w3.org/2001/XMLSchema-instance";
>> xmlns:v="http://schemas.xmlsoap.org/soap/envelope/";>
>> <v:Header/>
>> <v:Body>
>> <n0:getWatchableList xmlns:n0="http://watchable.portal.osgi.cnam.org/";
>> c:root="1" id="o0">
>> <n0:arg0 i:type="d:string">FOO</n0:arg0>
>> </n0:getWatchableList>
>> </v:Body>
>> </v:Envelope>
>>
>> SoapResponse from cxf-DOSGI:
>> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";>
>> <soap:Body>
>> <ns1:getWatchableListResponse
>> xmlns:ns1="http://watchable.portal.osgi.cnam.org/";>
>> <ns1:return>
>> <ns1:entry>
>> <ns1:key>FOO</ns1:key>
>> <ns1:value>BAR</ns1:value>
>> </ns1:entry>
>> </ns1:return>
>> </ns1:getWatchableListResponse>
>> </soap:Body>
>> </soap:Envelope>
>
> --
> Daniel Kulp
> dk...@apache.org
> http://dankulp.com/blog
>

Reply via email to