Building a web service layer into Plone3

Eric Bréhault ebrehault at
Wed Oct 31 08:53:32 UTC 2007

a good approach to implement a SOAP layer on top of existing products might
be to create a BrowserView class that would handle all the SOAP protocol
(produce the WSDL, process the SOAP queries, produce the XML output), so it
would be easy to give a SOAP behaviour to any of your existing content types
(you would just need to specify a marker interface and add a browser:page
tag in your configure.zcml)

I did it to implement a WFS service (WFS is a cartographic-oriented web
service protocol)

(about multi-apdaters and browserview, see this tutorial: )


On 10/31/07, Kevin Teague <kevin at> wrote:
> If you just need to respond to a limited number of custom SOAP
> messages, then making a tool and installing it into the root of your
> Plone instance is one solution. For example, something along these
> lines (semi-pseudo semi-crusty code follows) ...
> class MyCustomTool(UniqueObject, SimpleItem, PropertyManager):
>      "Custom Web Service tool"
>      security = ClassSecurityInfo()
>      id = meta_type = 'portal_custom_tool'
>      title = 'Custom Web Service Tool'
>      plone_tool = True
> security.declareProtected(ModifyPortalContent,'specialWebServiceMethod')
>      def specialWebServiceMethod(self, param1, param2 ):
>         # do stuff ...
> Then you need to instantiate this tool inside your Plone site so that
> it has access to acquisition and context and all that jazz.
> I've used this with XML-RPC, since Zope 2 will respond to XML-RPC
> messages out-of-the-box. Adding in SOAP support I've never
> experimented with, Google or others on this list might be able to
> provide more knowledge there ...
> _______________________________________________
> Product-Developers mailing list
> Product-Developers at
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the Product-Developers mailing list