2014-04-29 4 views
0

Je tente de créer un service de rapport basé sur un servlet.Mise en cache des fichiers Jasper JasperReport

Lorsque l'application est en cours d'exécution et je chanege le fichier .jrxml mon application encore me donne un rapport sans modification de conception, donc je pense que cache jasper quelque part.

Comment puis-je l'éteindre ou forcer l'effacement de ce cache?

File compiledTemplate=new File(JASPER_COMPILED_TEMPLATES_PATH+ File.separator+templateName+".jasper"); 

File template=new File(JASPER_TEMPLATES_PATH+File.separator+templateName+".jrxml"); 
     JasperReport jasperReport=null; 


     if(compiledTemplate.exists()){ 
      compiledTemplate.delete(); 
     } 

     JasperCompileManager.compileReportToFile(template.getAbsolutePath(),compiledTemplate.getAbsolutePath()); 
     jasperReport=(JasperReport) JRLoader.loadObjectFromFile(compiledTemplate.getAbsolutePath()); 

     return jasperReport; 

Répondre

0

Quelle est la raison d'utiliser compiledTemplate en tant que fichier? Essayez comme ceci:

File template=new File(JASPER_TEMPLATES_PATH+File.separator+templateName+".jrxml"); 
JasperReport jasperReport= JasperCompileManager.compileReport(template); 
return jasperReport; 
+0

Je ne peux pas le faire de cette façon. C'est la décision de mon patron. – ognistysztorm

Questions connexes