views:

85

answers:

2

Hi, I am working on a web application. We are using jasperreports. Compiling jasperreports on every call is an overhead and takes considerable time (4-7 seconds). We thought of precompiling the jrxmls using Spring but still have the ability to re-generate if the jrxml is changed/modified. Has anybody done this before? If yes, how. Thanks

+1  A: 
  • You can schedule a timer which re-compiles new jasper reports every X hours (check here)
  • You can load the jrxml as File and check its lastModified(), store it in a database (or a HashMap), and on each subsequent need for the jrxml to compare the lastModified() to the value in the database / HashMap and recompile it only if they differ
  • combine the two methods above
  • create a simple interface (a password-protected page) that lists all jrxml files with a button "compile", so that whenever you change something, you go to that page and indicated which jrxmls should be recompiled.
Bozho
+1 for the Admin page. that could be used for many things.
medopal
A: 

I don't know your application, but you could look at using JasperServer. This web app has a repository and processes that manage JRXML content and compilation. You could access the app via web services.

Sherman Wood