Galera, preciso de uma ajuda para chamar um SubRelatório. Consigo chamar o mesmo quando executo pelo iReport, mas não consigo pelo Java, o relatório principal é exibido mas o Sub não ..
try {
FacesContext context = FacesContext.getCurrentInstance();
HttpServletResponse response = (HttpServletResponse) context.getExternalContext().getResponse();
InputStream reportStream = context.getExternalContext().
getResourceAsStream("/Relatorios_Jasper/Professor_Turma.jasper");
InputStream subreportStream = context.getExternalContext().
getResourceAsStream("/Relatorios_Jasper/Professor_Turma_turmas.jasper");
Usuario sessao = new Usuario();
HttpSession sessioon = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(false);
sessao = (Usuario) sessioon.getAttribute("usuario");
Conexao conex = new Conexao();
Connection conn = conex.getConnection();
Map parametro = new HashMap();
parametro.put("usuario", sessao.getNome().toUpperCase());
parametro.put("REPORT_CONNECTION", conn);
parametro.put("SUBREPORT_DIR", subreportStream.toString());
try {
ServletOutputStream servletOutputStream = response.getOutputStream();
JasperRunManager.runReportToPdfStream(reportStream,servletOutputStream,parametro,conn);
servletOutputStream.flush();
servletOutputStream.close();
} catch (JRException e) {
e.printStackTrace();
}catch (IOException e) {
e.printStackTrace();
}finally{
context.responseComplete();
}