> Hi,
>
> I'm trying to create JSON RPC server based on uWSGI 1.9.1. It listens on
> http-socket and everything seems to be working fine until the client
> request come. Then 500 Internal Server Error will raise. I don't know
> what's wrong. I went through the basics about uWSGI including
> http://uwsgi-docs.readthedocs.org/en/latest/RPC.html. But maybe I
> overlooked something.
>
> My ini config is simple:
> [uwsgi]
>
>
> master = true
> http-socket = :9658
> workers = 3
> plugin_dir = /usr/lib/uwsgi/plugins
>
>
> RPC interface is also simple:
> import uwsgi
>
>
> import json
>
> def hello():
>     print 'got a call'
>     return json.dumps({'test_param': "test"})
> #enddef
>
> uwsgi.register_rpc("hello", hello)
>
>
> And server will start with:
> uwsgi --ini ./config.ini --import rpcinterface.py --enable-threads --stats
> :1717
>
> detected binary path: /usr/local/src/uwsgi/uwsgi-1.9.1/uwsgi
> your processes number limit is 3883
> your memory page size is 4096 bytes
> detected max file descriptor number: 1024
> lock engine: pthread robust mutexes
> uwsgi socket 0 bound to TCP address :9658 fd 3
> Python version: 2.7.3 (default, Jan  2 2013, 14:09:21)  [GCC 4.7.2]
> Python main interpreter initialized at 0x25288d0
> python threads support enabled
> your server socket listen backlog is limited to 100 connections
> your mercy for graceful operations on workers is 60 seconds
> mapped 290528 bytes (283 KB) for 3 cores
> *** Operational MODE: preforking ***
> registered shared/inherited RPC function "hello"
> *** no app loaded. going in full dynamic mode ***
> spawned uWSGI master process (pid: 14563)
> spawned uWSGI worker 1 (pid: 14565, cores: 1)
> spawned uWSGI worker 2 (pid: 14566, cores: 1)
> spawned uWSGI worker 3 (pid: 14567, cores: 1)
> *** Stats server enabled on :1717 fd: 15 ***
>
> When I do a request like this: curl 127.0.0.1:9658/hello
>
> Error server message will be: --- no python application found, check your
> startup logs for errors ---
>
> Thank you for any help :)
>
> Tom
> _______________________________________________
> uWSGI mailing list
> [email protected]
> http://lists.unbit.it/cgi-bin/mailman/listinfo/uwsgi
>

RPC subsystem works at lower level than HTTP so you cannot directly call
it from an http client.

You have to map rpc calls to http uri using the interna routing system:

[uwsgi]
http-socket = :9090
import = rpcinterface.py

route = ^/hello rpc:hello
route = ^/hello/(.+)/(.+) rpc:hello $1 $2
route = foobar/$ rpc:test ${REQUEST_URI}

and so on...




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

Reply via email to