[Solución definitiva] No se pudo abrir el recurso ServletContext [/WEB-INF/dispatcher-servlet.xml]

【❤️La solución definitiva❤️】No se pudo abrir el recurso ServletContext [/WEB-INF/dispatcher-servlet.xml]

java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/dispatcher-servlet.xml]
	org.springframework.web.context.support.ServletContextResource.getInputStream(ServletContextResource.java:159)
	org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:333)
	org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:310)
	org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:188)
	org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:224)
	org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:195)
	org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:125)
	org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:94)
	org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:130)
	org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:671)
	org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:553)
	org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:702)
	org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:668)
	org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:716)
	org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:591)
	org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:530)
	org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:170)
	javax.servlet.GenericServlet.init(GenericServlet.java:158)
	org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)
	org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
	org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687)
	org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360)
	org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399)
	org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
	org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:890)
	org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1743)
	org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
	org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
	org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
	org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	java.lang.Thread.run(Thread.java:748)

1. Causas:

Insertar descripción de la imagen aquí

Como se mencionó anteriormente, después de iniciar Tomcat, el archivo de configuración Dispatcher-servlet.xml no se puede encontrar durante la inicialización del proyecto .

1.1 Problema de denominación del archivo de configuración

  • El nombre del servlet configurado en el archivo web.xml es diferente del nombre del archivo de configuración springmvc, simplemente modifíquelo para que sea el mismo.

Insertar descripción de la imagen aquí

Insertar descripción de la imagen aquí

Lo que se debe tener en cuenta aquí es que el nombre predeterminado es el valor de nombre-servlet -servlet.xml, por lo que debemos eliminar la parte "-servlet" después del despachador-servlet en la primera imagen, porque esta parte está ahí de forma predeterminada.

  • El archivo de configuración de springmvc es:dispatcher-servlet.xml

  • La configuración del nombre del servlet es:

    <servlet>
        <servlet-name>dispatcher</servlet-name>//这里不能写成dispatcher-servlet,因为 -servlet是默认就有的!!!
        <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>

1.2 Problema de inicio del contenedor Spring

  • Hay un problema con el inicio del contenedor Spring. El archivo de configuración de Spring para el inicio no está configurado.

Insertar descripción de la imagen aquí

<context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:applicationContext.xml</param-value>
    </context-param>

La configuración de mapeo de este archivo es obligatoria y el nombre no se puede personalizar.<param-name>contextConfigLocation</param-name>

2. Artículos de referencia

Supongo que te gusta

Origin blog.csdn.net/weixin_43891901/article/details/130521264
Recomendado
Clasificación