Estoy migrando el proyecto de la configuración basada en xml a la configuración basada en Java.

Pude definir todos los frijoles con éxito excepto uno. El XMLViewResolver Estamos usando JasperReports, por lo que todos los archivos jrxml están definidos en reports.xml Desde mi classpath, no puedo ubicar el archivo xml.

Lo intenté solo agregando el reports.xml dentro del ClassPathResource, pero aún así, obtengo un error durante el tiempo de construcción del proyecto.

@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

Código xml antiguo:

<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

0
Shiva kumar 1 oct. 2019 a las 15:54

1 respuesta

La mejor respuesta

Tuve que mover informes.xml a src / main / resources y cambié la ubicación de la siguiente manera

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

Ahora el proyecto puede leer y detectar el archivo .xml

enter image description here

0
Shiva kumar 1 oct. 2019 a las 13:16