Welcome, guest | Sign In | My Account | Store | Cart

Notice! PyPM is being replaced with the ActiveState Platform, which enhances PyPM’s build and deploy capabilities. Create your free Platform account to download ActivePython or customize Python with the packages you require and get automatic updates.

Download
ActivePython
INSTALL>
pypm install dm.zope.rpc-protocol.wsdl-suds

How to install dm.zope.rpc_protocol.wsdl_suds

  1. Download and install ActivePython
  2. Open Command Prompt
  3. Type pypm install dm.zope.rpc-protocol.wsdl-suds
 Python 2.7Python 3.2Python 3.3
Windows (32-bit)
0.1a2 Available View build log
Windows (64-bit)
0.1a2 Available View build log
Mac OS X (10.5+)
0.1a2 Available View build log
Linux (32-bit)
0.1a2 Available View build log
Linux (64-bit)
0.1a2 Available View build log
 
Author
License
BSD
Lastest release
version 0.1a2 on Jan 5th, 2011

This is a plugin for dm.zope.rpc, a protocol independent middleware to expose web services over a variety of rpc protocols.

This package is using suds, an advanced soap (1.1) client library under the LGPL license. suds is slightly abused by using it to implement a server component. This abuse requires the use of undocumented implementation details which may change between suds versions. The package has been implemented with suds==0.3.9. It may not work with other versions.

Limitations

The current implementation does not handle exceptions. They are not transformed into SOAP Fault messages (as required by SOAP 1.1) but reported by the underlying transport protocol ("HTTP") (using HTTP error codes with HTML messages). The reason for this limitation: SOAP 1.1 has no complete (self contained) specification for its Fault element but requires externally defined namespaces for completion and I have not yet understood the interaction between WSDL defined exceptions and SOAP Fault elements. Once, I have understood WSDL specified exceptions, this limitation might be removed.

SOAP and WSDL are complex standards with a large number of features. This package does not support all features. For example, it ignores all SOAP headers, even headers with a must_understand declaration (in violation of the SOAP specification). In addition, only a small set of features has been tested: for example, only the document binding; other bindungs might (or might not) work. Over time, more features might be supported, might have been tested.

The current implementation makes use of suds WSDL caching. This can be confusing during WSDL development, as modifications are not seen until the cache times out. Delete the suds cache files in such a case (they usually are in a suds subfolder of the folder typically used for temporary files).

Configuration

As usual with dm.zope.rpc protocol handlers, configuration is via a marshaller instance. The WSDL specific configuration of the WsdlMarshaller is via the fields wsdl_map and default_namespace. wsdl_map maps the namespace found in a method invocation to an url which provides access to the WSDL for this namespace. default_namespace is the namespace to be used for GET requests when method and parameters are specified directly in the url and not via a request entity.

You can find a (simple) example configuration in tests.soap.

Misc

The package has been tested under Zope 2.12 and Zope 2.10. For Zope versions before 2.12, a properly configured dm.zopepatches.xmlrpc is required, to prevent Zope's builtin xmlrpc support to interfere. The above mentioned example configuration shows how dm.zopepatches.xmlrpc can be configured.

Subscribe to package updates

Last updated Jan 5th, 2011

Download Stats

Last month:1

What does the lock icon mean?

Builds marked with a lock icon are only available via PyPM to users with a current ActivePython Business Edition subscription.

Need custom builds or support?

ActivePython Enterprise Edition guarantees priority access to technical support, indemnification, expert consulting and quality-assured language builds.

Plan on re-distributing ActivePython?

Get re-distribution rights and eliminate legal risks with ActivePython OEM Edition.