当我启动我的应用程序时,我收到此错误
java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/SpringDispatcher-servlet.xml]
nested exception is java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/SpringDispatcher-servlet.xml]
与此同时,我没有像SpringDispatcher-servlet.xml这样的文件,我的web.xml或我的WEB-INF文件夹中定义的mvc-dispatcher-servlet.xml文件也没有。
web.xml文件
<context-param>
<param-name>contextClass</param-name>
<param-value>
org.springframework.web.context.support.AnnotationConfigWebApplicationContext
</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>SpringDispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>SpringDispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/mvc-dispatcher-servlet.xml</param-value>
</context-param>
<session-config>
<session-timeout>30</session-timeout>
</session-config>
mvc-dispatcher-servlet.xml文件
<context:component-scan base-package="aish.vaishno.musicstore.controller" />
<mvc:annotation-driven />
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/view/" />
<property name="suffix" value=".jsp" />
</bean>
请问如何找到此文件
/WEB-INF/SpringDispatcher-servlet.xml
请问我出错了什么?
答案 0 :(得分:0)
Spring正在您的Web项目中查找SpringDispatcher-servlet.xml,因为它无法找到它,它会抛出异常。
您可以像这样覆盖调度程序servlet xml文件 - 提供空白参数。
<servlet>
<servlet-name>SpringDispatcher</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value></param-value>
</init-param>
</servlet>
答案 1 :(得分:0)
在web.xml中定义Dispatcher servlet时,spring期望Web应用程序上下文名称为/ WEB-INF /下的Disptacherservletname-servlet.xml。 在你的情况下它应该是SpringDispatcher-servlet.xml而不是mvc-dispatcher-servlet.xml
或者您可以使用contextConfigLocation参数来遵循您自己的命名约定。
<servlet>
<servlet-name>SpringDispatcher</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/mvc-dispatcher-servlet.xml</param-value>
</init-param>
</servlet>
答案 2 :(得分:0)
在您的web.xml中,您已将servlet定义为
<servlet>
<servlet-name>SpringDispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
因此,您需要在 WEB-INF 文件夹中创建名为 SpringDispatcher-servlet.xml 的文件。这就是它的工作原理。如果将servlet-name更改为dispatcher,则文件名应为dispatcher-servlet.xml。
SpringDispatcher-servlet.xml包含spring上下文的定义。看一下这个tutorial。