为了账号安全,请及时绑定邮箱和手机立即绑定

Apache Thrift Python-Java“连接被拒绝”

Apache Thrift Python-Java“连接被拒绝”

德玛西亚99 2021-03-03 10:10:34
我最近尝试使用Thrift将Python连接到Java。我已经在Python(PyPy)上编写了服务器。我还写了一个有效的参考客户。然后,我编写了一个Java客户端,该客户端仅产生“拒绝连接”异常。这怎么了 (最近我还发现了一个封闭的问题,该问题的特征是https://issues.apache.org/jira/browse/THRIFT-1888)PS。使用过的Thrift 0.9版本,PyPy 2.0 beta 2,Java 1.7.0_11节俭namespace java com.testnamespace python testservice TestPing {   void ping()} Python服务器代码class TestPingHandler:  def ping(self):    passhandler = TestPingHandler()processor = TestPing.Processor(handler)transport = TSocket.TServerSocket(port=9091)tfactory = TTransport.TBufferedTransportFactory()pfactory = TBinaryProtocol.TBinaryProtocolFactory()server = TServer.TThreadedServer(processor, transport, tfactory, pfactory)print 'Starting the server...' server.serve()print 'done.' Java客户端代码TTransport transport;transport = new TSocket("localhost", 9091);transport.open();TProtocol protocol = new TBinaryProtocol(transport);client = new TestPing.Client(protocol);client.ping();参考Python客户端代码transport = TSocket.TSocket('localhost', 9091)transport = TTransport.TBufferedTransport(transport)protocol = TBinaryProtocol.TBinaryProtocol(transport)client = TestPing.Client(protocol)transport.open()client.ping()transport.close()
查看完整描述

2 回答

?
慕尼黑8549860

TA贡献1818条经验 获得超11个赞

我遇到过同样的问题。用ip替换“ localhost”来修复它。

原因是:Python使用TCPV6,而Java使用TCP。

Python: transport = TSocket.TServerSocket(host="127.0.0.1", port = 9091)

Java的: transport = new TSocket("127.0.0.1", 9091);


查看完整回答
反对 回复 2021-03-27
?
jeck猫

TA贡献1909条经验 获得超7个赞

transport = new TSocket("localhost", 9091);

TProtocol protocol = new TBinaryProtocol(transport);

transport.open();


This should work...


查看完整回答
反对 回复 2021-03-27
  • 2 回答
  • 0 关注
  • 239 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号