Dubbo过滤器失效问题
问题描述
在进行Dubbo练习Demo的时候,配置了过滤器。发现并没有生效,在进行服务调用的时候,没有显示过滤器打印的内容。
解决方案
1、检查导入包
检查看过滤器中导入的包是否是Dubbo的包
org.apache.dubbo.rpc.Filter
,点进去会发现有该类下有@SPI
注解,那就说明没有引入错误。
2、resources目录问题
这个也是我碰到的问题。
根据SPI的机制,针对maven工程
,我们需要在resources路径
新建META-INF/dubbo/org.apache.dubbo.rpc.Filter
这个文件夹。
由于创建类的习惯,喜欢通过包名.类名
这样的关系进行创建,但是遇到resources目录
,它可不买账。
我们来看一下问题所在
也就是说:
我们创建META-INF.dubbo
后,那么这个目录就叫META-INF.dubbo
;而正常创建的才会有META-INF/dubbo
这种层级关系。
因为dubbo在运行的时候找不到META-INF/dubbo
下的SPI扩展机制,所以过滤器无法正常加载。