class 无法打开路径资源,因为它在我手动加载上下文时不存在

class path resource cannot be opened because it does not exist when I load context manually

我有以下 webApp 文件夹结构:

我想手动加载 spring 上下文。

我写了下面的代码:

ApplicationContext app = new ClassPathXmlApplicationContext("applicationContext.xml");

当调用上面的代码时,我看到以下异常消息:

java.io.FileNotFoundException: class path resource [applicationContext.xml] cannot be opened because it does not exist

如何重写我的代码以避免此异常?

P.S. 我不想移动我的 xml 文件。

P.P.S.

new ClassPathXmlApplicationContext("WEB-INF/applicationContext.xml")  

虽然在 web.xml 中写了

,但也不起作用
<context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>WEB-INF/applicationContext.xml</param-value>
</context-param>

有效

当您提供此位置时

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

资源是相对于 Servlet 上下文路径解析的。

当您提供时

new ClassPathXmlApplicationContext("WEB-INF/applicationContext.xml")  

您是在告诉 Spring 在类路径中查找给定的资源。在您的情况下,它可能不存在(WEB-INF 通常不会添加到类路径 afaik)。

将其添加到类路径或将 applicationContext.xml 文件移动到类路径中的其他位置并在构造函数中使用该路径。