Hi all,
 
I spent some time trying to call a SOAP service with complexTypes through the 
WSIF connector. I saw no way to configure typeMapping for the XML marshalling: 
trying to extend the WSDL with format:typeMapping, as described at 
http://ws.apache.org/wsif/providers/wsdl_extensions/java_extension.html 
<http://ws.apache.org/wsif/providers/wsdl_extensions/java_extension.html>  
didn't work for me. Another example at the WSIF site was simply calling 
service.mapType(), but I saw no way to pass that call to WSIFBinding. 
 

I ended up with a working solution, but I wonder what the right way to do it 
would be according to servicemix. What I did:

 

public class MyWsifBinding extends WSIFBinding {

 public void setMapTypes(MapTypes types)  { 

   . . . 

  getServiceHelper().mapType(  new QName(types.geNamespace(), type.geName()),  
Class.forName( type.getJavaType()));

} . . 

TypeMapping initialization takes place in the Spring container:

 

<component id="login" service="foo:login" class=". . . .MyWsifBinding" >

<property name="definitionResource" value="http://.../soap.php?wsdl"/>

<property name="mapTypes" ref="mapTypes"/>

. . .

<bean id="mapTypes" class=". . MapTypes">

. . . 

<property name="name" value="set_entry_result"/>

<property name="javaType" value=". . ..Set_entry_result"/>

 

Any comment will be highly appreciated. 

 

Regards,

Assen


Disclaimer

Dit bericht met eventuele bijlagen is vertrouwelijk en uitsluitend bestemd voor 
de geadresseerde. Indien u niet de bedoelde ontvanger bent, wordt u verzocht de 
afzender te waarschuwen en dit bericht met eventuele bijlagen direct te 
verwijderen en/of te vernietigen. Het is niet toegestaan dit bericht en 
eventuele bijlagen te vermenigvuldigen, door te sturen, openbaar te maken, op 
te slaan of op andere wijze te gebruiken. Ordina N.V. en/of haar 
groepsmaatschappijen accepteren geen verantwoordelijkheid of aansprakelijkheid 
voor schade die voortvloeit uit de inhoud en/of de verzending van dit bericht.

This e-mail and any attachments are confidential and is solely intended for the 
addressee only. If you are not the intended recipient, please notify the sender 
and delete and/or destroy this message and any attachments immediately. It is 
prohibited to copy, to distribute, to disclose or to use this e-mail and any 
attachments in any other way. Ordina N.V. and/or its group companies do not 
accept any responsibility nor liability for any damage resulting from the 
content of and/or the transmission of this message.

Reply via email to