问题:
Caused by: com.alibaba.dubbo.remoting.RemotingException: Fail to decode request due to: RpcInvocation [methodName=sync, parameterTypes=null, arguments=null, attachments={path=com.XX.Service, input=1056, dubbo=1.1.0, version=1.0}]
at com.alibaba.dubbo.remoting.exchange.support.DefaultFuture.returnFromResponse(DefaultFuture.java:196) ~[dubbo-1.1.0.jar:1.1.0]
at com.alibaba.dubbo.remoting.exchange.support.DefaultFuture.get(DefaultFuture.java:111) ~[dubbo-1.1.0.jar:1.1.0]
at com.alibaba.dubbo.remoting.exchange.support.DefaultFuture.get(DefaultFuture.java:85) ~[dubbo-1.1.0.jar:1.1.0]
at com.alibaba.dubbo.rpc.protocol.dubbo.DubboInvoker.doInvoke(DubboInvoker.java:95) ~[dubbo-1.1.0.jar:1.1.0]
... 74 common frames omitted
别的组的同学反馈,测试环境dubbo接口调不通,线上是正常的。
我自己invoke测试下,是正常的,其中说新挑战的业务类型不行。
排查下:
检查参数是否实现了java.io.Serializable,
检查两边接口包的版本是否一致,
都没问题。
再看下代码,入参是个对象,有个属性是枚举值,业务调整调用方传个新的枚举值,新发了jar包,这边的服务接收方还是原来jar。
升级一下jar保持一致就好了。
*******************
总结:接口还是用字符串比较好,枚举这种跨系统的有利有弊,有时候对于自己业务没影响的也得跟着被迫升级。