2016-04-28 47 views
1

當我啓動我的應用程序得到這個錯誤java.io.FileNotFoundException:無法打開ServletContext的資源[/WEB-INF/SpringDispatcher-servlet.xml]

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-調度-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

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> 
+0

在添加它時,它會拋出資源未找到 – Blaze

+0

您可以添加完整的堆棧跟蹤嗎? – asg

+0

INFO:初始化Spring FrameworkServlet'SpringDispatcher' – Blaze

0

當你定義在web.xml春季調度的servlet預計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> 
0

在web.xml你定義的servlet是

<servlet> 
    <servlet-name>SpringDispatcher</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 

</servlet> 

因此,您東東創建一個名爲SpringDispatcher-servlet.xml中文件的WEB-INF文件夾中。這就是它的工作原理。如果您將servlet-name更改爲分派器,那麼文件名應該是dispatcher-servlet.xml。

您的SpringDispatcher-servlet.xml包含您的spring上下文的定義。看看這個tutorial

相關問題