gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 23:59:36 26 4
gpt4 key购买 nike

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

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com