因为项目中服务之间都是通过dubbo来调用的,今天我给负责任务的服务提供了一个接口,接口名称为 getRankCount(),我觉得很简单的一个接口,但是提供了以后,服务报错:
查了一些资料说可能是dubbo版本问题,这种答案基本上否定,因为之前项目是正常运行的,第二种答案就是存在getxxx()的方法被错误识别。我看了一下代码,的确是我提供的服务接口是getRankCount()以get开头并且没有参数,我修改以后果然好了,我看了一下dubbo源码,dubbo动态生成代码return ($w) w.getFilterRuleToRedis(); 出现了问题。这是因为 这样的方法,dubbo暴露服务的时候 把它当成获取属性方法来编译,然后出现类型转化报错。
解决办法:不要使用getXXX()的不带参的方法。