报错信息
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.alibaba.dubbo.config.ConsumerConfig': Error setting property values; nested exception is org.springframework.beans.PropertyBatchUpdateException; nested PropertyAccessExceptions (1) are:
PropertyAccessException1:org.springframework.beans.MethodInvocationException: Property 'filter' threw exception; nested exception isjava.lang.IllegalStateException: No such extension Filter for filter/com.alibaba.dubbo.rpc.Filter
这个问题主要有两种情况:
一 jetty或者tomcat启动报这个错,分析原因如下
配置时 <dubbo:provider filter="DubboExceptionFilter"></dubbo:provider>
DubboExceptionFilter 这个值不是spring的bean. 而需要在META-INF/dubbo/com.alibaba.dubbo.rpc.Filter 文件中配置如下文件内容:
DubboExceptionFilter=com.xxx.common.DubboRequestFilter
二 如果是main方法加载spring容器报这个错的话,且已经配置了上面的文件
那就是因为加载这个扩展实现类缺少了两个依赖jar,jetty和tomcat上是包含这两个依赖jar的。
只需要在maven的pom.xml加入下面两个依赖
<dependency>
<groupId>javax.el</groupId>
<artifactId>javax.el-api</artifactId>
<version>3.0</version>
</dependency>
<dependency>
<groupId>org.glassfish.web</groupId>
<artifactId>javax.el</artifactId>
<version>3.0</version>
</dependency>
或者在gradle的配置文件上加下面两个依赖
compile group: 'javax.el', name: 'javax.el-api', version: '3.0.0'
compile group: 'org.glassfish.web', name: 'javax.el', version: '3.0.0'