Sub Relatorios - iReport - Não Aparece qdo Executado pelo Sistema

Olá Amigos…

Meu problema é o seguinte:

Fiz um relatorio que contem 3 Sub Relatorios. Tudo rodou perfeitamente no preview do iReport, só que, qdo rodei o relatorio com o sistema,
A unica coisa que é mostrada é o relatorio principal, nenhum dos subrelatorios aparecem.

Creiro que nao seja algo “bizarro” mas nao identifiquei o que era.

fico no aguardo de alguma ajuda dos amigos…

Estou mandando o código da Classe que executa o relatorio, caso ajude.

Grato a todos…

import java.util.HashMap;
import javax.swing.JOptionPane;
import net.sf.jasperreports.engine.JRResultSetDataSource;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.view.JasperViewer;



public class RelatorioProcesso {

String codigo, situacao;
Conexao conecta = new Conexao();
    
    
public RelatorioProcesso(String codProc)
   { codigo = codProc;
     try
        {
          conecta.conecta();
          conecta.executeSQL("SELECT processo.`numProcesso` AS processo_numProcesso,"
                  + "requerente.`nome` AS requerente_nome,requerente.`telefone` AS requerente_telefone,"
                  + "vara.`vara` AS vara_vara,     orgao.`descricao` AS orgao_descricao,"
                  + "objeto.`objeto` AS objeto_objeto,     acao.`acao` AS acao_acao,"
                  + "processo.`situacao` AS processo_situacao "
                  + "FROM"
                  + "`ligacao_processo_requerente` ligacao_processo_requerente INNER JOIN "
                  + "`processo` processo ON ligacao_processo_requerente.`numProcesso` = processo.`numProcesso`"
                  + "INNER JOIN `requerente` requerente ON ligacao_processo_requerente.`cpfRequerente` = requerente.`cpf`"
                  + "INNER JOIN `vara` vara ON processo.`codVara` = vara.`codVara`"
                  + "INNER JOIN `orgao` orgao ON processo.`codOrgao` = orgao.`codOrgao`"
                  + "INNER JOIN `objeto` objeto ON processo.`codObjeto` = objeto.`codObjeto`"
                  + "INNER JOIN `acao` acao ON processo.`codAcao` = acao.`codAcao`"
                  + "WHERE processo.numProcesso ='" +codigo+"'");          
         
          
          JRResultSetDataSource jrRs= new JRResultSetDataSource(conecta.resultset) ;
          JasperPrint relatorio = JasperFillManager.fillReport(
          "C:/Sistema Dorival/relatorios/principalc.jasper",
          new HashMap(),jrRs);
          JasperViewer.viewReport(relatorio,false);
         }
     catch(Exception erro)
       {
        JOptionPane.showMessageDialog(null,"Erro ao Exibir Relatório"+ erro);
       
       }
   }

   

   
    void setVisible(boolean b) {
        throw new UnsupportedOperationException("Not yet implemented");
    }
    
    
  
    
}

Olha tenho um exemplo,vc tem q passar qual são os subreportes que serão executados no meu caso: SUBREPORT_DIR,SUBREPORT_DIR2 o caminho e seu jasper correspondente.

public void gerarRelacaoAlunoIrmaoResp(String param) {
		Connection con = null;
	    try {
	    	HashMap<String, Object> mapInterna = new HashMap<String, Object>();
	    	//1. Carregar arquivos.
			String contexto = getContextPath();
	    	//2. Configurar parametros.
		    //3. Gerar relatorio em PDF.
		    JasperReport pai = (JasperReport) JRLoader.loadObject(getContextPath() + PATH_REL + "alunoIrmaoResponsavel.jasper");
		    //JasperReport filho = (JasperReport) JRLoader.loadObject(getContextPath() + PATH_REL + "parecerObservacao.jasper");
		    mapInterna.put("SUBREPORT_DIR",getContextPath() + PATH_REL + "requerimentoIrmao.jasper");
		    mapInterna.put("SUBREPORT_DIR2",getContextPath() + PATH_REL + "alunoirmaoRespSub.jasper");
			mapInterna.put("Usuario", getUsuario());
			mapInterna.put("Imagem",  contexto);
			mapInterna.put("PPARAMETRO",param);
			con  = PoolConnection.getPollConection(Negocio.JDBC_POOL);			
			byte[] rel = JasperRunManager.runReportToPdf(pai, mapInterna, con);
			  //4. Enviar o PDF para o browser do cliente.
	    	HttpServletResponse response = getResponse();
	        response.setContentType("application/pdf");
	        response.setHeader("Content-Disposition","attachment;filename="+"AlunoIrmaoResponsavel.pdf");
	        ServletOutputStream out = response.getOutputStream();
	        out.write(rel, 0, rel.length);
	        out.flush();
	        out.close();	        
	        FacesContext.getCurrentInstance().responseComplete();        
	        FacesContext.getCurrentInstance().responseComplete();
	   } catch (Exception e) {
	       imprimirErrosPagina(e.getMessage());
	   } finally{
		   if (con!= null) {
			   try {
				con.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}		    
		   }
	   }
	}	

Nao resolveu, bom, eu preciso saber se é necessario informar, dentro da classe, os subReports.

caso sim, como?