{"id":662,"date":"2022-02-05T14:49:45","date_gmt":"2022-02-05T13:49:45","guid":{"rendered":"http:\/\/www.valeriofinazzo.it\/wordpress\/?p=662"},"modified":"2022-02-05T14:50:40","modified_gmt":"2022-02-05T13:50:40","slug":"spring-boot-filenotfoundexception-class-path-resource-cannot-be-resolved-to-absolute-file-path-because-it-does-not-reside-in-the-file-system-jarfile","status":"publish","type":"post","link":"https:\/\/www.valeriofinazzo.it\/wordpress\/2022\/02\/spring-boot-filenotfoundexception-class-path-resource-cannot-be-resolved-to-absolute-file-path-because-it-does-not-reside-in-the-file-system-jarfile\/","title":{"rendered":"SPRING-BOOT &#8211; FileNotFoundException: class path resource cannot be resolved to absolute file path because it does not reside in the file system:  jar:file:*"},"content":{"rendered":"\n<p>Personalmente reputo jasper reports un prodotto ottimo, permette di elaborare report di elevata complessit\u00e0 permettendo di concentrarsi sugli aspetti pi\u00f9 importanti come la presentazione senza aver bisogno di una conoscenza approfondita di librerie per gestire i vari formati pfg, xls, csv, &#8230;<\/p>\n\n\n\n<p>Lo stack tecnologico si evolve con il tempo e capita che soluzioni adottate precedentemente non siano pi\u00f9 percorribili. E&#8217; il caso di jasper report e spring boot. Spring boot, altro prodotto validissimo, ci permette di generare dei jar eseguibili che tramite l&#8217;uso dei tomcat embedded ci permette di tirare dei servizi web senza particolari problemi. Non hai pi\u00f9 la necessit\u00e0 di gestire una istanza tomcat, e di generare il war che va installata su di essa, ma generi un jar che eseguito espone il servizio richiesto. Se all&#8217;interno del jar prevediamo la presenza dei template jasper per l&#8217;elaborazione del report occorre non pi\u00f9 fornire il path ma fornire questo template sotto forma di inputstream. Su questo argomento avevo gi\u00e0 scritto un articolo che trovate <a href=\"http:\/\/www.valeriofinazzo.it\/wordpress\/2020\/04\/spring-boot-java-io-filenotfoundexception-class-path-resource\/\" target=\"_blank\" rel=\"noreferrer noopener\" title=\"qui\">qui<\/a>.<\/p>\n\n\n\n<p>In questi giorni  per\u00f2 mi \u00e8 capitato di dover gestire un report che a suo volta conteneva un subreport passato sotto forma di path ed ecco che si  \u00e8 ripresentata di nuovo l&#8217;eccezione FILENOTFOUNDEXCEPTION, perch\u00e8 giustamente anche il subreport va passato come inpustream per risolvere il problema.<\/p>\n\n\n\n<p>Ricapitolando:<\/p>\n\n\n\n<p>In JasperReport definisco un parametro di tipo inputstream<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><a href=\"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-content\/uploads\/2022\/02\/image.png\"><img loading=\"lazy\" src=\"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-content\/uploads\/2022\/02\/image.png\" alt=\"\" class=\"wp-image-663\" width=\"453\" height=\"236\" srcset=\"https:\/\/www.valeriofinazzo.it\/wordpress\/wp-content\/uploads\/2022\/02\/image.png 343w, https:\/\/www.valeriofinazzo.it\/wordpress\/wp-content\/uploads\/2022\/02\/image-300x157.png 300w\" sizes=\"(max-width: 453px) 100vw, 453px\" \/><\/a><\/figure>\n\n\n\n<p>Lo utilizzo come espressione del subreport<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-content\/uploads\/2022\/02\/image-1.png\"><img loading=\"lazy\" width=\"591\" height=\"354\" src=\"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-content\/uploads\/2022\/02\/image-1.png\" alt=\"\" class=\"wp-image-664\" srcset=\"https:\/\/www.valeriofinazzo.it\/wordpress\/wp-content\/uploads\/2022\/02\/image-1.png 591w, https:\/\/www.valeriofinazzo.it\/wordpress\/wp-content\/uploads\/2022\/02\/image-1-300x180.png 300w\" sizes=\"(max-width: 591px) 100vw, 591px\" \/><\/a><\/figure>\n\n\n\n<p>E nella classe java dove invoco il metodo per la generazione del report lo passo come parametro<\/p>\n\n\n\n<p><code data-enlighter-language=\"java\" class=\"EnlighterJSRAW\">params.put(\"SUBREPORT_INPUTSTREAM\", report.getInputStream());<\/code><\/p>\n\n\n\n<p>Buon lavoro<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Personalmente reputo jasper reports un prodotto ottimo, permette di elaborare report di elevata complessit\u00e0 permettendo di concentrarsi sugli aspetti pi\u00f9 importanti come la presentazione senza aver bisogno di una conoscenza approfondita di librerie per gestire i vari formati pfg, xls, csv, &#8230; Lo stack tecnologico si evolve con il tempo e capita che soluzioni adottate &hellip; <a href=\"https:\/\/www.valeriofinazzo.it\/wordpress\/2022\/02\/spring-boot-filenotfoundexception-class-path-resource-cannot-be-resolved-to-absolute-file-path-because-it-does-not-reside-in-the-file-system-jarfile\/\" class=\"more-link\">Continua la lettura di <span class=\"screen-reader-text\">SPRING-BOOT &#8211; FileNotFoundException: class path resource cannot be resolved to absolute file path because it does not reside in the file system:  jar:file:*<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/posts\/662"}],"collection":[{"href":"https:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/comments?post=662"}],"version-history":[{"count":4,"href":"https:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/posts\/662\/revisions"}],"predecessor-version":[{"id":668,"href":"https:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/posts\/662\/revisions\/668"}],"wp:attachment":[{"href":"https:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/media?parent=662"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/categories?post=662"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/tags?post=662"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}