Spring mvc 无法加载spring应用程序上下文

Spring mvc 无法加载spring应用程序上下文,spring-mvc,Spring Mvc,我想加载myapp-servlet.xml作为我的web应用程序上下文。我既没有定义spring contextLoaderListner也没有定义上下文参数,只定义了DispatcherServlet <display-name>myapp</display-name> <description/> <servlet> <servlet-name>myapp</servlet-name>

我想加载myapp-servlet.xml作为我的web应用程序上下文。我既没有定义spring contextLoaderListner也没有定义上下文参数,只定义了DispatcherServlet

   <display-name>myapp</display-name>
    <description/>
    <servlet>
        <servlet-name>myapp</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>myapp</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

我想知道为什么即使未定义上下文参数和contextLoaderListener,也会查找默认的applicationContext.xml文件?

只需为Spring配置文件添加适当的上下文参数:

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/myapp-servlet.xml</param-value>
</context-param>

上下文配置位置
/WEB-INF/myapp-servlet.xml

Spring代码中可能有一个默认配置文件位置。。。似乎是一个很好的机会…

只需为您的Spring配置文件添加适当的上下文参数:

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/myapp-servlet.xml</param-value>
</context-param>

上下文配置位置
/WEB-INF/myapp-servlet.xml
Spring代码中可能有一个默认配置文件位置。。。似乎是一个很好的机会…

只需添加

<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

org.springframework.web.context.ContextLoaderListener
只需在web.xml中添加

<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

org.springframework.web.context.ContextLoaderListener

到你的web.xml

但是myapp-servlet.xml不应该默认被选中吗,根据spring文档是的,你是对的,它应该按照你说的那样工作。我会在
src
树中搜索
applicationContext.xml
,因为可能有一个单元测试试图通过指定XM文件手动加载applicationContext。还要检查您的
myapp servlet.xml
文件的权限,以防tomcat无法读取该文件。但是默认情况下不应该选择myapp-servlet.xml,根据spring文档是的,它应该按照您所说的工作。我会在
src
树中搜索
applicationContext.xml
,因为可能有一个单元测试试图通过指定XM文件手动加载applicationContext。还要检查您的
myappservlet.xml
文件的权限,以防tomcat无法读取该文件。