Hi there!
I've a jsonrpc webservice built with web2py, it's been running for several months.
Today we added SSL to the domain that serves the app running the webservice.
Since that change, I can still connect and use the webservice, but I have an intermitent error "[Errno 111] Connection refused".
This is the error traceback:
Traceback (most recent call last): File "/var/www/medios/gluon/restricted.py", line 227, in restricted exec ccode in environment File "/var/www/medios/applications/webmedios/controllers/ws.py", line 300, in File "/var/www/medios/gluon/globals.py", line 393, in self._caller = lambda f: f() File "/var/www/medios/applications/webmedios/controllers/ws.py", line 10, in call return service() File "/var/www/medios/gluon/tools.py", line 5132, in __call__ return self.serve_jsonrpc() File "/var/www/medios/gluon/tools.py", line 4852, in serve_jsonrpc data = json_parser.loads(request.body.read()) File "/usr/lib/python2.7/json/__init__.py", line 338, in loads return _default_decoder.decode(s) File "/usr/lib/python2.7/json/decoder.py", line 366, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "/usr/lib/python2.7/json/decoder.py", line 384, in raw_decode raise ValueError("No JSON object could be decoded") ValueError: No JSON object could be decoded
The webservice is defined in ws.py controller like this:
from gluon.tools import Service
service = Service()
def call():
session.forget()
return service()
@service.jsonrpc
def test(_vars):
return {'success': True}
Then, I use the webservice like this:
def consume_test():
from gluon.contrib.simplejsonrpc import ServerProxy
webservice = ServerProxy('https://mydomain.com/ws/call/jsonrpc') # notice it uses https
result = webservice.test('whatever')
return result
I can confirm that the app that runs the webservice is navigable through https with no problem at all.
Do I need to connect to the webservice in a special way for https? What else could be the problem?
Thanks in advance!
Regards,
Lisandro.