我正在使用Spring Security,但由于某种原因,我的web.xml找不到我的applicationContext.xml 的web.xml
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:conf/admin/applicationContext.xml
classpath:conf/admin/applicationContext-security.xml
</param-value>
</context-param>
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
我的applicationContext.xml位于myProject / conf / admin / applicationContext.xml中,与我的web.xml位于同一位置,但它总是抛出异常:
14:18:07,793 ERROR [ContextLoader] Context initialization failed
org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [conf/admin/applicationContext.xml]; nested exception is java.io.FileNotFoundException: class path resource [conf/admin/applicationContext.xml] cannot be opened because it does not exist
我已经尝试放入WEB-INF文件夹(就像每个Spring Security教程一样),它位于myProject / dist / web / WEB-INF中,但当我清理我的项目以进行刷新和重建时,它会被删除。< / p>
那么我做错了什么?将错误的路径放在contextConfigLocation
或applicationContext.xml中的错误位置?
答案 0 :(得分:1)
假设您正在关注Standard Maven Directory Structure,即您的XML配置文件位于src/main/webapp/WEB-INF/conf/admin
下,请尝试以下操作:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/conf/admin/applicationContext.xml
/WEB-INF/conf/admin/applicationContext-security.xml
</param-value>
</context-param>
另一种方法是使用默认值:
applicationContext.xml
文件放在src/main/webapp/WEB-INF
下,默认情况下它将被弹出。<import resource="applicationContext-security.xml" />
行以导入安全配置。