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 >