[Zope] calling a product with xmlrpc

Paul Winkler pw_lists at slinkp.com
Tue Apr 11 12:37:11 EDT 2006


On Tue, Apr 11, 2006 at 05:54:35PM +0200, Reinoud van Leeuwen wrote:
> Hi,
> 
> I have a working Pyhton script to search for users in a plone site with a 
> commandline xmlrpc client. It cannot be changed into an external method 
> because of the fact that it only works when running under a role with 
> sufficient rights.
> So I turned it into a product.
> 
> Basically I have (I have deleted some obvious code):
> 
> class Xmlrpcindex(UniqueObject, SimpleItem):
>     security = ClassSecurityInfo()
>     security.declarePublic('search')
> 
>     def search (self, SearchableText):
> 	return 'foobar'
> 
> The product is recignized as a Zope product and Plone product. It is 
> installed in my Plone instance and I have made an instance in my Plone 
> root (with id my_xmlrpc_instance).
> 
> So the client looks like this:
> 
> import xmlrpclib
> server = xmlrpclib.Server('http://localhost/plonesite/my_xmlrpc_instance')
> results = server.search('sometext')
> 
> 
> This however generates a NotFound Exception :-(

I'm not sure why you get NotFound, but one thing I spotted is that
anything you want to publish in zope 2 must have a docstring.

Stating the obvious: have you at least verified that the server url is
correct?  You should be able to point your browser directly at 
http://localhost/plonesite/my_xmlrpc_instance .

also, I'm not familiar with xmlrpclib.Server.
The library docs only mention xmlrpclib.ServerProxy, afaict.
Presumably that's just a typo and you are using the standard
xmlrpclib?

-- 

Paul Winkler
http://www.slinkp.com


More information about the Zope mailing list