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.