thrift 异常:at org.apache.thrift.protocol.TBinaryProtocol.writeString(TBinaryProtocol.java:200)

线上使用thrift rpc是,发现客户端报错:

Caused by: java.lang.NullPointerException
        at org.apache.thrift.protocol.TBinaryProtocol.writeString(TBinaryProtocol.java:200)
        at com.abc.test.recothrift.model.RecoRequest$RecoRequestStandardScheme.write(RecoRequest.java:384)
        at com.abc.test.recothrift.model.RecoRequest$RecoRequestStandardScheme.write(RecoRequest.java:332)
        at com.abc.test.recothrift.model.RecoRequest.write(RecoRequest.java:286)
        at com.abc.test.recothrift.service.IPersonalRecoService$recommend_args$recommend_argsStandardScheme.write(IPersonalRecoService.java:571)
        at com.abc.test.recothrift.service.IPersonalRecoService$recommend_args$recommend_argsStandardScheme.write(IPersonalRecoService.java:535)
        at com.abc.test.recothrift.service.IPersonalRecoService$recommend_args.write(IPersonalRecoService.java:486)
        at org.apache.thrift.TServiceClient.sendBase(TServiceClient.java:63)
        at com.abc.test.recothrift.service.IPersonalRecoService$Client.send_recommend(IPersonalRecoService.java:82)
        at com.abc.test.recothrift.service.IPersonalRecoService$Client.recommend(IPersonalRecoService.java:74)
        ... 51 more

根据报错信息,可以定位是thrift底层错误,而且是thrift消息对象报出来的,查看消息

struct RecoRequest {
	1:map<string,string> params
}

发现如果params的map结构中如果有null,就会导致thrift报错。或者对于thrift的list结构中有null也会报上面的错。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

赶路人儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值