java - 无法在 Spring Java 配置中使用 ClassPathResource 找到 xml 文件

标签 java spring classpath filenotfoundexception

我正在将项目从基于 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>

Project Structure

最佳答案

我必须将 reports.xml 移动到 src/main/resources 并更改位置,如下所示

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

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

enter image description here

关于java - 无法在 Spring Java 配置中使用 ClassPathResource 找到 xml 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58185230/

相关文章:

java - 如何将空字符串序列化为单个空标记?

java - 如何以编程方式登录到 URL、保持 session 并浏览到不同的页面

java - 在非 Maven 项目中,如何在运行时查看 java 类路径中的类?

java - 引用 jar 中的数据文件

java - 方法重载最不具体的方法参数类型

java - 保存在 JFrame 中所做的更改

java - 如何在 Spring 中使用枚举设置 int 属性?

java - 在eclipse中的另一个用户库中添加用户库

spring - 如何在 Spring MVC 中混契约(Contract)步和异步请求?

hadoop - 在Oozie中编辑YARN的类路径