Archivi categoria: Senza categoria

SPRING-BOOT – FileNotFoundException: class path resource cannot be resolved to absolute file path because it does not reside in the file system: jar:file:*

Personalmente reputo jasper reports un prodotto ottimo, permette di elaborare report di elevata complessità permettendo di concentrarsi sugli aspetti più importanti come la presentazione senza aver bisogno di una conoscenza approfondita di librerie per gestire i vari formati pfg, xls, csv, …

Lo stack tecnologico si evolve con il tempo e capita che soluzioni adottate precedentemente non siano più percorribili. E’ il caso di jasper report e spring boot. Spring boot, altro prodotto validissimo, ci permette di generare dei jar eseguibili che tramite l’uso dei tomcat embedded ci permette di tirare dei servizi web senza particolari problemi. Non hai più la necessità 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’interno del jar prevediamo la presenza dei template jasper per l’elaborazione del report occorre non più fornire il path ma fornire questo template sotto forma di inputstream. Su questo argomento avevo già scritto un articolo che trovate qui.

In questi giorni però mi è capitato di dover gestire un report che a suo volta conteneva un subreport passato sotto forma di path ed ecco che si è ripresentata di nuovo l’eccezione FILENOTFOUNDEXCEPTION, perchè giustamente anche il subreport va passato come inpustream per risolvere il problema.

Ricapitolando:

In JasperReport definisco un parametro di tipo inputstream

Lo utilizzo come espressione del subreport

E nella classe java dove invoco il metodo per la generazione del report lo passo come parametro

params.put("SUBREPORT_INPUTSTREAM", report.getInputStream());

Buon lavoro

JAVA – CONFIGURARE I MESSAGGI DI JAVAX.VALIDATATION

Usare JAVAX.VALIDATION ha i suoi vantaggi, tramite delle comode annotation demandiamo al nostro sistema la funziona di validazione per le casistiche più comuni

che coprono la stragrande maggioranza dei casi.

Quando il sistema riscontra l’errore restituisce il messaggio associato, es. not be not null

Qualora volessimo agevolmente localizzare il messaggio è sufficiente creare un file ValidationMessages_it_IT.properties sotto la directory resources del nostro progetto maven e il gioco è fatto

Es. del file

javax.validation.constraints.NotNull.message=Obbligatorio
javax.validation.constraints.NotEmpty.message=Obbligatorio