Try this... :) It’s not complete and it probably doesn’t handle all corner 
cases right, but it works.
It’s based on the Python XML-RPC docs, wrapped (more or less) neatly in a WSGI 
application.

https://gist.github.com/akx/5585146

You could even make it actually delegate calls to uWSGI RPC if you wished by 
subclassing SimpleXMLRPCDispatcher or simply registering shims for uWSGI RPC 
functions within it.

-Aarni

From: [email protected] [mailto:[email protected]] On 
Behalf Of drácek mrácek
Sent: Wednesday, May 15, 2013 6:47 PM
To: uWSGI developers and users list
Subject: Re: [uWSGI] Failing client request on RPC server

Thank you for your reply.

I like uWSGI for its powerful process management. So if I intend to use it 
something like XML-RPC server accessible by non-uwsgi process I guess I have to 
use it with internal routes (or with routes defined in Nginx). But then it 
won't be XML-RPC server I wanted to realize with uWSGI :-)

Or I can use uwsgi protocol and every client webapp launch under uwsgi. But 
then I will lose the advantage of independence that comes with XML-RPC.

T.

On Wed, May 15, 2013 at 4:56 PM, Roberto De Ioris 
<[email protected]<mailto:[email protected]>> wrote:

> Maybe it's silly question, but anyway - applying routing rules solved
> problem with connecting via http client. But what if I would like to
> connect  with RPC client (to http-socket = :9090) directly to uwsgi RPC
> server, ie like this
>
> s = xmlrpclib.ServerProxy('http://hostname:9090')
> print s.hello()
>
> Above example will generate error:
> --- no python application found, check your startup logs for errors ---
> [pid: 19553|app: -1|req: -1/9] IP-ADDR () {32 vars in 529 bytes} [Wed May
> 15 16:10:26 2013] GET /favicon.ico => generated 21 bytes in 0 msecs
> (HTTP/1.1 500) 1 headers in 57 bytes (0 switches on core 0)
>
> And on client side will be raised xmlrpclib.ProtocolError
>

XML-RPC is at the same protocol level of uwsgi-RPC

So you would need a XML-RPC to uwsgi-RPC translator (something pretty easy
to realize, but no-one ever asked for it).

So from the uwsgi point of view the pattern will became:

http parsing -> xmlrpc parsing -> rpc call -> xmlrpc translation -> http
response

while now you have

http parsing -> rpc call -> http response

while using uwsgi.rpc() you have

uwsgi parsing -> rpc call -> uwsgi response

--
Roberto De Ioris
http://unbit.it
_______________________________________________
uWSGI mailing list
[email protected]<mailto:[email protected]>
http://lists.unbit.it/cgi-bin/mailman/listinfo/uwsgi

_______________________________________________
uWSGI mailing list
[email protected]
http://lists.unbit.it/cgi-bin/mailman/listinfo/uwsgi

Reply via email to