我在web.xml中定义了以下内容
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:p360UiSpringConfig/p360UiDispatcherServlet-servlet.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>p360UiDispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
以下是我的web-inf的外观:
当我在WebLogic中启动应用程序时,出现以下错误:
错误java.io.FileNotFoundException:无法打开ServletContext资源[/WEB-INF/p360UiDispatcherServlet-servlet.xml]
问题是当我定义了contextConfigLocation时,为什么要在Web-Inf中查找spring配置文件?
答案 0 :(得分:1)
按如下方式修改contextConfigLocation
中的web.xml
。
修改强>
正在发生的事情是Spring容器正试图在WEB-INF文件夹中查找<Dispatcher Servlet Name>-servlet.xml
的上下文。这是因为您没有为调度程序servlet <init-param>
指定p360UiDispatcherServlet
。 <context-param>
用于指定常见的附加上下文路径,例如DAO,安全性等。理想情况下,这应该可以解决您的问题。请检查修改后的web.xml
<!-- Any Common Additional Context Paths -->
<!--<context-param>
<param-name>contextConfigLocation</param-name>
<param-value></param-value>
</context-param>-->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>p360UiDispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:/p360UiSpringConfig/p360UiDispatcherServlet-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>