[Fedora-suds-list] suds and Exchange Web Services
Glen Walker
Glen.Walker at kordia.co.nz
Sat Sep 4 12:21:32 UTC 2010
Hi Erik,
> There are various other problems using Exchange together with Suds, one being that Exchange (despite the XSD) needs some calls to be in a specific XML format that Suds is unable to generate.
I have recently been dealing with the SOAP API of a vendor that might have similar issues. Key problems with it are:
1) Provides WSDL that doesn't quite match their implementation
2) Replies with faults that aren't inside a Fault element
3) Provides some XSD that is not well-formed XML
4) Considers certain empty and attributeless elements to have a different meaning to absense of the element.
Suds however considers an empty and attributeless element to be superfluous and won't include it in SOAP calls.
I have worked around these problems using suds 0.0.4 beta and a combination of custom suds.plugin.DocumentPlugin and suds.plugin.MessagePlugin objects. The workaround that might be relevant to your issue with Exchange (#4 above) was solved by using a suds.plugin.DocumentPlugin to dynamically add a dummy attribute to the problem elements in the XSD, and a suds.plugin.MessagePlugin to dynamically remove the dummy attribute from the SOAP envelope before it is sent.
I could give you a hand with this aspect if it is of any use to you.
Kind Regards,
Glen
-----Original Message-----
From: suds-bounces at lists.fedoraproject.org [mailto:suds-bounces at lists.fedoraproject.org] On Behalf Of Erik Cederstrand
Sent: Friday, 3 September 2010 7:53 p.m.
To: jon at objectevolution.com
Cc: suds at lists.fedoraproject.org
Subject: Re: [Fedora-suds-list] suds and Exchange Web Services
Hi Jon
I'm working on a python module for Exchange. There are various other problems using Exchange together with Suds, one being that Exchange (despite the XSD) needs some calls to be in a specific XML format that Suds is unable to generate. Another problem is that Suds doesn't offer connection pooling, which is important to me, as I'm doing high-volume content creation in Exchange.
If you, or anyone else, is interested in helping out please send me a note.
Thanks,
Erik
Den 03/09/2010 kl. 00.11 skrev jon at objectevolution.com:
> Hi,
>
> I'm using the suds-ews branch to "try" and connect to Exchange Web Services for a client. Couple things I've run into:
>
> 1. I need to bring Services.wsdl, messages.xsd and types.xsd local and not on the Exchange server so I could modify Services.wsdl and append the following:
>
> <wsdl:service name="ExchangeServices">
> <wsdl:port name="ExchangeServicePort" binding="tns:ExchangeServiceBinding">
> <soap:address location="https://exchange.server.com/ews/Exchange.asmx" />
> </wsdl:port>
> </wsdl:service>
>
> 2. Now, I get the client creation in Python just fine but when I go to call a service it wants me to, obviously, authenticate.
>
> I can authenticate to the server upon client creation but I get a bad wsdl which needs the xml snippet from above. I can go local with the wsdl but then I need to authenticate to call a service.
>
> Can the client call a service and pass a transport as well?
>
> Thanks,
>
> Jon
>
> _______________________________________________
> suds mailing list
> suds at lists.fedoraproject.org
> https://admin.fedoraproject.org/mailman/listinfo/suds
This email and attachments: are confidential; may be protected by privilege and copyright; if received in error may not be used, copied, or kept; are not guaranteed to be virus-free; may not express the views of Kordia(R); do not designate an information system; and do not give rise to any liability for Kordia(R).
More information about the suds
mailing list