[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