我没有applicationContext.xml。我不需要。
这是我的web.xml
文件:
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigurationLocation</param-name>
<param-value>/WEB-INF/config/security-config.xml</param-value>
</context-param>
...
<servlet>
<servlet-name>fitTrackerServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/config/servlet-config.xml</param-value>
</init-param>
</servlet>
我那里有security-config.xml
个文件,看起来像这样:
<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:p="http://www.springframework.org/schema/p"
xmlns="http://www.springframework.org/schema/security"
xsi:schemaLocation="http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security-3.2.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.2.xsd">
<http auto-config="true">
<intercept-url pattern="/**" access="ROLE_USER"/>
</http>
<authentication-manager>
<authentication-provider>
<user-service>
<user name="ajde" password="ajde" authorities="ROLE_USER" />
</user-service>
</authentication-provider>
</authentication-manager>
</beans:beans>
而且我仍然遇到错误,例如没有applicationContext.xml
。
SEVERE: Context initialization failed
org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from ServletContext resource [/WEB-INF/applicationContext.xml]; nested exception is java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/applicationContext.xml]
那怎么可能?!?
我看不到我在做错什么。
很显然,这是一条道路。但是在相同的工作原理下将servlet-config.xml置于servlet配置中。
我将我的 security-config.xml
复制/粘贴到 WEB-INF
的根目录,并将其重命名为 applicationContext.xml
< / strong>和...它起作用!!!!!!
所以,wtf我做错了吗?!?!? 我看不到...
答案 0 :(得分:0)
侦听器检查contextConfigLocation参数。 如果该参数不存在,则侦听器将使用/WEB-INF/applicationContext.xml作为默认值。当参数确实存在时,侦听器将使用预定义的定界符(逗号,分号和空格)来分隔String,并将这些值用作将在其中搜索应用程序上下文的位置。还支持蚂蚁风格的路径模式。对于位于“ WEB-INF”目录中的所有名称以“ Context.xml”结尾的文件,示例均为/WEB-INF/*Context.xml;对于所有文件,示例均为/WEB-INF/**/*Context.xml此类文件位于“ WEB-INF”的任何子目录中。
您可以避免使用applicationContext.xml,但它看起来像是https://www.nurkiewicz.com/2011/01/spring-framework-without-xml-at-all.html的工作坊