开发者社区 > 云原生 > 正文

dubbo 3.2.0版本调用多协议接口,出现空指针错误

依赖:

org.apache.dubbo dubbo 3.2.0 Provider端使用3.0.10版本,并且服务暴露双协议: dubbo和tri协议

Consumer升级至3.2.0版本,进行调用时,报如下错误: [2023-05-08 15:15:08,503] [WARN ] [org.apache.dubbo.rpc.protocol.tri.stream.StreamUtils ?] [main] dstTraceId:[] [DUBBO] Meet exception when convert single attachment key:version value=null, dubbo version: 3.2.0, current host: 192.168.3.217, error code: 4-1. This may be caused by , go to https://dubbo.apache.org/faq/4/1 to find instructions. [] java.lang.NullPointerException: null at org.apache.dubbo.rpc.protocol.tri.stream.StreamUtils.convertSingleAttachment(StreamUtils.java:137) at org.apache.dubbo.rpc.protocol.tri.stream.StreamUtils.convertAttachment(StreamUtils.java:107) at org.apache.dubbo.rpc.protocol.tri.RequestMetadata.toHeaders(RequestMetadata.java:74) at org.apache.dubbo.rpc.protocol.tri.call.TripleClientCall.sendMessage(TripleClientCall.java:173) at org.apache.dubbo.rpc.protocol.tri.observer.ClientCallToObserverAdapter.onNext(ClientCallToObserverAdapter.java:44) at org.apache.dubbo.rpc.protocol.tri.TripleInvoker.invokeUnary(TripleInvoker.java:247)

经过debug发现,ServiceDiscoveryRegistryDirectory中的invoke方法,在协议变更时,会往Attachment中设置group和version参数,如果这两个参数未使用,则会设置为null,最后导致空指针。

提问1.png

请问这是预期中的现象吗?

原提问者GitHub用户victorqian

展开
收起
大圣东游 2023-05-11 15:33:11 246 0
1 条回答
写回答
取消 提交回答
  • 这个在新版本已经修过了 用新版试试

    原回答者GitHub用户EarthChen

    2023-05-12 10:40:16
    赞同 展开评论 打赏

阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。

相关电子书

更多
Dubbo开源现状与2.7规划 立即下载
Dubbo分布式服务治理实战 立即下载
《Dubbo 3.0 前瞻》 立即下载