当我尝试使用jython stand alone 2.7.0执行以下代码时,我得到 javax.net.ssl.SSLHandshakeException:常规SSLEngine问题,
import jsonrpclib
url = 'https://userName:Password@host/'
ss = jsonrpclib.Server( url )
result = ss.runCmds( 1, [{ "cmd" : "<command>" } ] )
print result
例外:
Traceback (most recent call last):
File "<string>", line 4, in <module>
File "/jython/Lib/jsonrpclib/jsonrpc.py", line 288, in __call__
return self.__send(self.__name, args)
File "/jython/Lib/jsonrpclib/jsonrpc.py", line 237, in _request
response = self._run_request(request)
File "/jython/Lib/jsonrpclib/jsonrpc.py", line 251, in _run_request
response = self.__transport.request(
File "/jython/Lib/xmlrpclib.py", line 1264, in request
return self.single_request(host, handler, request_body, verbose)
File "/jython/Lib/xmlrpclib.py", line 1292, in single_request
self.send_content(h, request_body)
File "/jython/Lib/jsonrpclib/jsonrpc.py", line 126, in send_content
connection.endheaders()
File "/jython/Lib/httplib.py", line 997, in endheaders
self._send_output(message_body)
File "/jython/Lib/httplib.py", line 850, in _send_output
self.send(msg)
File "/jython/Lib/httplib.py", line 812, in send
self.connect()
File "/jython/Lib/httplib.py", line 1204, in connect
self.sock = ssl.wrap_socket(sock, self.key_file, self.cert_file)
File "/jython/Lib/_socket.py", line 357, in handle_exception
return method_or_function(*args, **kwargs)
File "/jython/Lib/_socket.py", line 357, in handle_exception
return method_or_function(*args, **kwargs)
File "/jython/Lib/ssl.py", line 287, in wrap_socket
return SSLSocket(
File "/jython/Lib/ssl.py", line 116, in __init__
self.do_handshake()
File "/jython/Lib/ssl.py", line 165, in do_handshake
raise SSLError(SSL_ERROR_SSL, e.strerror)
_socket.SSLError: [Errno 1] General SSLEngine problem (javax.net.ssl.SSLHandshakeException: General SSLEngine problem)
相同的代码在python中工作正常。
答案 0 :(得分:0)
这是因为您是否指定了SSL证书。 有一些方法可以绕过证书,寻找它们。在scala中查找以下代码,我在scala中做同样的事情。可以帮到你。