I think i had an answer for this. But it is some sort temp solution. Basically the fillManager is looking for the compiled object while jrxml is not compiled. So in the SUBREPORT_DIR should look like: class="net.sf.jasperreports.engine.JasperReport" isforprompting="false" name="SUBREPORT_DIR" and the subreportExpression in the subreport tag under main report should be the above SUBREPORT_DIR for some reason i can not paste my code here, it looks like the HTML editor is messed up here. I am using IE10 http://stackoverflow.com/questions/12063947/connect-master-report-and-subreport-passing-list-of-objects-to-subreport