Невозможно найти XML-файл, используя ClassPathResource в конфигурации Spring Java - PullRequest
0 голосов
/ 01 октября 2019

Я перевожу проект из конфигурации на основе XML в конфигурацию на основе Java.

Мне удалось определить все компоненты, кроме одного. XMLViewResolver Мы используем JasperReports, поэтому все файлы jrxml определены в reports.xml. Из моего пути к классам я не могу найти файл XML.

Я пробовал толькодобавив reports.xml внутри ClassPathResource, но все же я получаю ошибку во время создания проекта.

@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

1 Ответ

0 голосов
/ 01 октября 2019

Мне пришлось переместить report.xml в src / main / resources и изменить местоположение следующим образом

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

Теперь проект может читать и определять XML-файл

enter image description here

...