web.xml中的Spring servlet缺少contextConfigLocation参数值

时间:2014-02-02 22:17:32

标签: spring-mvc

我有一个 web.xml 文件,其中包含一个servlet,用于定义 init-param 以指定 contextConfigLocation ,但参数值 BLANK

为什么开发人员会这样做。我不能在我的生活中找到Spring 3.X的文档中的任何内容,它告诉我它有什么影响。

<servlet>
    <servlet-name>restservices</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value></param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

3 个答案:

答案 0 :(得分:3)

默认情况下,DispatcherServlet将加载名为 [servlet-name] -servlet.xml 的xml文件。

这是在未定义名为init-param的{​​{1}}时。

但是在你的情况下,有一个名为contextConfigLocation的{​​{1}}被定义,它告诉init-param只加载委托给父上下文(由{{1加载的那个) }})。

因此,简而言之,定义为contextConfigLocation或空DispatcherServlet之间存在差异。

另见https://jira.springsource.org/browse/SPR-4746

答案 1 :(得分:1)

这只是因为开发人员没有在servlet配置中声明任何内容。 他可能已经在根语境中定义了他所需要的一切。

答案 2 :(得分:0)

阿。通常,调度程序servlet将遵循搜索servlet-name - servlet.xml以加载WebAppContext的约定。 它可能是(这只是猜测工作因为我不知道你的配置)已经有一个文件restservices-servlet.xml

  • 使用ContextLoaderListener
  • 加载
  • 或导入applicationContext.xml(或其等效版本)
  • 或者根本不需要,因为Controller / ViewResolver的所有bean都是 已在applicationContext.xml
  • 中配置

通常,DispatcherServlet配置(WebappContext)应包含Controller / ViewResolver bean定义。