无法使用 Spring Java 配置中的 ClassPathResource 定位 xml 文件

Unable to locate xml file using ClassPathResource in Spring Java configuration

我正在将项目从基于 xml 的配置迁移到基于 java 的配置。

除了一个之外,我能够成功定义所有 bean。 XMLViewResolver 我们正在使用 JasperReports,因此所有 jrxml 文件都在 reports.xml 中定义 在我的类路径中,我无法找到 xml 文件。

我只尝试在 ClassPathResource 中添加 reports.xml,但在项目构建期间仍然出现错误。

@Bean 
public ViewResolver xmlViewResolver() {
        logger.info("xmlViewResolver");
        XmlViewResolver bean = new XmlViewResolver();
        bean.setOrder(10);
        bean.setLocation(new ClassPathResource("WEB-INF/spring/appServlet/reports.xml"));
        return bean;
    }
Caused by: java.io.FileNotFoundException: class path resource [WEB-INF/spring/appServlet/reports.xml] cannot be opened because it does not exist
    at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:172)
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:330)
    ... 47 more

旧xml代码:

<beans:bean id="viewResolver"
        class="org.springframework.web.servlet.view.XmlViewResolver">
        <beans:property name="order" value="0" />
        <beans:property name="location"
            value="/WEB-INF/spring/appServlet/reports.xml" />
</beans:bean>

我不得不将 reports.xml 移动到 src/main/resources 并更改位置如下

        bean.setLocation(new ClassPathResource("reports.xml"));

现在项目能够读取和检测 .xml 文件