关于thrift python接口和java通信出现问题解决

真的无语,搞了一个下午。

使用thrift出现错误,先说一下遇到第一个错误,如下图:

那时候代码是这叼样

``` if __name__ == '__main__': handler = MessageServiceHandler() processor = MessageService.Processor(handler) transport = TSocket.TServerSocket(None, "9090") tfactory = TTransport.TFramedTransportFactory() pfactory = TBinaryProtocol.TBinaryProtocolFactory()
server = TServer.TSimpleServer(processor, transport, tfactory, pfactory)
print ("python thrift server start")
server.serve()
print ("python thrift server exit")
后面怀疑是不是版本问题,就把python和java的thrift版本统一到了0.10.0,pom文件也改了还是不行,就继续看代码。
就看到thrift服务调用端的通信的代码

TSocket socket = new TSocket(ip, port, 3000);
TTransport transport = new TFramedTransport(socket);
try {
transport.open();
} catch (TTransportException e) {
e.printStackTrace();
return null;
}
TProtocol protocol = new TBinaryProtocol(transport);

怀疑timeout太短造成的,这想想也不可能,但我还是将3000改成了10000,还是没用。
所以到底为啥,我调用另一个服务的thrift竟让成功,这就疑惑了,难道是没开服务。
使用命令行查看发现有啊还在监听,当时也不知道这开没开,就稀里糊涂觉得端口开了。

TCP    [::1]:9090             [::]:0                 LISTENING       5284
那难道是thrift版本太低不能用了,也不可能,看别人用得好好的,为啥自己不能用。
就去搜python和java接口通信,没啥用,就重新把thrift的接口重新生成了一遍。然后DBUG调试
调试到transport.open();这行代码就报错返回空,然后问ai发现代码没问题,还说可能是防火墙阻止,但我想同一台服务器能阻止啥。
百思不得其所,就把网上thrift的文章浏览一遍,就只知道对方拒绝连接。还有文章说9090端口是默认端口啥的。
后面改了端口,发现还是没用,就统一了ip,ip也没有问题了,全是127.0.0.1,本来就没问题。
后面吃个饭想了想,换一种思路搜,“python使用thrift”仔细看了一遍,复制了下面的代码

handler = HelloWorldHandler()
processor = HelloWorld.Processor(handler)
transport = TSocket.TServerSocket('127.0.0.1',30303)
tfactory = TTransport.TBufferedTransportFactory()
pfactory = TBinaryProtocol.TBinaryProtocolFactory()
server = TServer.TSimpleServer(processor, transport, tfactory, pfactory)


发现成了,原来是TSocket.TServerSocket("localhost",9090),前面字符串用了双引号或者用None都不行,改成单引号,还有端口不要加引号,小问题但折磨人。
posted @   开源遗迹  阅读(54)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
历史上的今天:
2022-02-16 迪杰斯特拉算法
点击右上角即可分享
微信分享提示