答:
1、错误分析:报的错误是NOSuchBeanDefinitionException。说明spring的ioc时候没用找到shiroFilter的bean定义,那可能的原因是配置出错了,或者是配置没加载到。
2、我看了一下你web.xml配置,你加载的spring配置文件是这样的classpath:spring/applicationContext-*.xml,但是你定义的shiroFilter的bean是不是application-shiro.xml中,这样的话就会导致你的这个shiroFilter的bean没有被spring的ioc解析加载。所以就会报NOSuchBeanDefinitionException错。
3、解决方法:可以将web.xml配置改一下加载spring目录下所有得xml,或者是把这个application-shiro.xml改写名让他符合web.xml定义的加载配置路径
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/*.xml</param-value>
</context-param>
4、建议:了解下org.springframework.web.filter.DelegatingFilterProxy的含义,当filter-name和bean定义的名一样的时候targetBeanName这个初始参数就可以不用配置了