已解決【No bean named 'shiroFilter' is defined】shiroFilter在web.xml和spring-shiro.xml都沒有配置錯

SSM集成shiro報錯如下:

嚴重: Exception starting filter shiroFilter
org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'shiroFilter' is defined
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:694)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1168)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:281)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
	at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:962)
	at org.springframework.web.filter.DelegatingFilterProxy.initDelegate(DelegatingFilterProxy.java:324)
	at org.springframework.web.filter.DelegatingFilterProxy.initFilterBean(DelegatingFilterProxy.java:235)

仔細檢查web.xml和spring-shiro.xml發現shiroFilter並沒有錯誤。

排除配置文件shiroFilter不匹配的因素。

那就是shiro.xml沒有加載的原因。

檢查發現:

web.xml兩處配置context-param

<context-param>
		<description></description>
		<param-name>contextConfigLocation</param-name>
		<param-value>
			classpath:config/applicationContext.xml,
			classpath:config/spring-mvc.xml,
			classpath:config/spring-shiro.xml,
		</param-value>
	</context-param>

	
	
	
	<!-- spring啓動監聽器 -->
	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>
	<!-- 1.修改 spring 配置文件路徑 -->
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>
		classpath:config/applicationContext.xml;
	</param-value>
	</context-param>

並且以下面的context-param爲準,這樣sprign-shiro.xml就沒有生效。

單一配置解決問題。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章