[apache/dubbo]升级3.2.0-beta.5 后,无法使用postman 调试Triple 协议定义的接口

2023-12-18 218 views
6

3.2.0 之前的版本,使用triple 协议,都可以正常使用postman 中的gRPC接口进行调试,升级到3.2.0-beta.5 之后,postman就无法调用调试了; 版本回退到3.1.5 可以正常调试,3.2.0-beta.5(.4.3)都不可以,都是报同样的错

//报错信息如下

2023-02-20 16:27:50.226 ERROR 30215 --- [rverWorker-15-1] .r.t.n.NettyPortUnificationServerHandler :  [DUBBO] Can not recognize protocol from downstream=/127.0.0.1:52323 . preface=1603010200010001fc0303525e048a915ba2da048c4de775ae6e82d33bbce77080dd73993d2c094b4abad82073a2ed3e7dd5b5cb0a7c432ac5c1cedbe01b04659fb241bf06167a2b03555c490024130113021303c02fc02bc030c02ccca9cca8c009c013c00ac014009c009d002f0035000a0100018f0000000e000c0000096c6f63616c686f737400170000ff01000100000a00080006001d00170018000b0002010000230000001000050003026832000d00140012040308040401050308050501080606010201003300260024001d0020a6ec4472dae54e83841777195741537cbbf6ec1c6d06f28f5cc0e8f9bbf66a65002d00020101002b0009080304030303020301001500fc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 protocols=[dubbo, qos, tri], dubbo version: 3.2.0-beta.5, current host: 172.16.103.66, error code: 99-0. This may be caused by unknown error in remoting module, go to https://dubbo.apache.org/faq/99/0 to find instructions. 

回答

7

你的server是使用的什么方式呢?是stub的方式么?

5

@icodening

// 服务端就是用的普通的一元 RPC 模式

@DubboService
public class DubboUserCenterServiceImpl extends DubboUserCenterServiceTriple.UserCenterServiceImplBase {
9

@gebizhuxiaowang 我这边本地测试是可以的呢

image
8

@gebizhuxiaowang proto的 package 改成com.example.dubbo.interfaces.user是可以正常使用的

image
8

@icodening 感谢你指导,修改proto 文件的package 之后 可以正常调用了。

这是什么原因导致的呢(求知)? 又回头看了下protobuf官网对 packageoption java_package 的解释,一时间都不知道是dubbo 的问题还是postman的问题了😂。 postman 解析服务路径读取的proto 文件中的 package ,dubbo 3.1.5及之前,既支持package 前缀访问,又支持option java_package前缀访问;dubbo 3.2.0 之后呢,只支持最终生成文件路径访问,java中体现为 option java_package设置的值,就导致postman 调用不通了 🙈;

因此:3.2.0 之后,想要使用postman调用 调试dubbo,proto文件中 package 要和option java_package设置为一致

8

@gebizhuxiaowang 我看了下是之前的一个变更导致。 #11068

3

好的,了解了,谢谢 @icodening