【发布时间】:2014-04-16 12:58:05
【问题描述】:
好的,我是第 500 个提出这个问题的用户,我阅读了很多 answers,但仍然没有运气。
父模块 pom 包含:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.framework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.framework.version}</version>
</dependency>
子模块有maven-jetty-plugin,我用jetty:run 运行我的webapp 模块。
web.xml 定义标准调度模块:
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
我在WEB-INF 下有文件dispatcher-servlet.xml,但启动失败:
FileNotFoundException: Could not open ServletContext resource [/WEB-INF/applicationContext.xml]
怎么了?文档和每个人都说 Spring MVC 将搜索 XX-servlet.xml,其中 XX 是 servlet 的名称。为什么会搜索applicationContext.xml?
【问题讨论】:
-
你有一个 org.springframework.web.context.ContextLoaderListener 在你的 web.xml 中注册为
元素吗? -
是的,更新的问题
-
是的,这就是问题所在。默认情况下,ContextLoaderListener 将在 /WEB-INF/applicationContext.xml 中查找 Spring 配置。只需删除
元素,一切都会正常。 -
@RobBlake 好收获!复制它以回答,以便我接受。非常感谢
标签: java spring spring-mvc