Me gustaría tomar un archivo xml de mi classpath para descomponerlo y usarlo con fines de prueba. Mi problema es obtenerlo como un InputStream. Escribí estas líneas, pero siempre obtengo un resultado nulo.carga un archivo (xml) desde el classpath en una aplicación web de primavera
InputStream is = getClass().getResourceAsStream("WebContent/WEB-INF/classes/testing/"+ COMPLETE_DOCUMENT + ".xml");
Por supuesto, la ruta que ve en el argumento del método es la de mi archivo. He intentado varias combinaciones:
WebContent/WEB-INF/classes/testing/
classpath:testing/
classpath*:testing/
pero siempre me sale el InputStream = null.
Incluso he intentado cambiar a
ClassLoader.getResourceAsStream(...)
pero no pasa nada. Supongo que el camino hacia el recurso es incorrecto, pero no sé dónde. Desde mi servlet.xml: Consumo de recursos en la ruta de clase configurar PropertyPlaceholderConfigurer o Jaxb2Marshaller acaba con la sintaxis
"classpath:folder/file.xsd"
y funciona perfectamente. La carpeta de la que quiero cargar mi xml es una hermana de la del ejemplo anterior. ¿Qué me estoy perdiendo?
EDIT: trato de seguir el enfoque de clase de ayuda ClassPathResource primavera y me siento un comportamiento extraño: como he dicho antes ya tengo algunos recursos cargados desde la ruta de clase por parte de algunos granos de primavera en la puesta en marcha. Si utilizo el camino a tales recursos en el código sugerido por dardo de la siguiente manera:
ClassPathResource cpr = new ClassPathResource("xmlschemas/lrinode.xsd");
InputStream is = cpr.getInputStream();
todavía consigo un FileNotFound Exception
! Por supuesto "xmlschemas/lrinode.xsd"
es un xsd que cargué al inicio con éxito. No funciona incluso si utilizo la ruta completa al recurso, comenzando desde la raíz de la aplicación.
Estoy empezando a pensar que me estoy perdiendo algo trivial.
gracias, estoy interesado en esta clase de ayuda. Intenté su solución, pero sigo recibiendo '" java.io.FileNotFoundException: class path resource [testing/sample_complete_document.xml] no se puede abrir porque no existe "' excepción. El nombre del archivo es el nombre real del archivo en mi classpath. PS. Ya uso JAXB2^__^ – MaVVamaldo
Cuál es la ruta completa si el documento xml – dardo
el camino completo del documento xml es el siguiente: '/ VirtualResource2/WebContent/WEB-INF/classes/testing/sample_complete_document.xml'. Por supuesto, "VirtualResource2" es el nombre de mi aplicación web. – MaVVamaldo