调用Dubbo报错: com.alibaba.dubbo.rpc.RpcException: Failed to invoke the method 问题原因和解决办法

我们在使用Dubbo的过程中,时常会碰到这个异常。而有可能导致这个异常的原因是非常多的,排查起来比较困难。下面把如何排查该问题的思路整理了一下,目前我知道的会导致这个异常的原因分为以下几类:   

1.需要进行序列化的POJO类没有进行序列化,多是入参中的一些参数实体类。这个原因是最容易发现的,因为未序列化的类会在异常信息中显示,在日志信息中搜索“Serializable”,即可找到对应的类,再将其实现序列化即可。

2.Dubbo Provider 服务部署存在问题。检查你服务器上的dubbo服务是否正常,检查服务器是否存在问题(比如服务器上是否存在虚拟机网络)。最好尝试重新部署dubbo,通过invoke命令调用一下确认服务没有问题。

3.防火墙对应端口没有开启, 这种情况一般出现在外网调用时。dubbo默认端口是20880(这个可以通过修改配置更改)。

在 /etc/sysconfig/iptables中添加下边内容(以下命令是开启20880端口,有可能还需开启其他端口):

-A INPUT -m state --state NEW -m tcp -p tcp --dport 20880 -j ACCEPT

表示开启20880端口,然后:service iptables restart 重启防火墙即可。

Windows开启方法:控制面板—防火墙—高级—入站规则—新建规则—填写—下一步...

4.invoke方法代码执行过程中出现异常导致(也有可能是切面中存在异常,小心)。

按照以上顺序依次排查,问题应该不难找到。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值