Sub-relatório no ireport

Galera boa tarde, estou batendo cabeça com um sub-relatório, se eu executar os dois relatórios tanto o principal como o subrelatório os dois executam normal, o meu problema está na hora que eu chamo o relatório pela minha classe do sistema, o sistema gera uma Exception: Could not load object from location : c:\meuArquivo.jasper
No subRelatório na aba Subreport Connection/Datasource Expression está como Use connection expression $P{REPORT_CONNECTION} e na aba Subreport (Other) Subreport Expresson Class está setado como java.lang.String e Subreport Expression o endereço onde está o arquivo “c:\meuArquivo.jasper”

import java.util.HashMap; import java.util.Map;

import javax.swing.JOptionPane;

import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.design.JasperDesign;
import net.sf.jasperreports.view.JasperViewer;

public class ImprimirChamados{

private String dir = "C:\\java\\sysChamados\\";
private String relatorio,relatorio1,setTitle;

public ImprimirChamados(){
	
	setTitle	= "Impressão";
	relatorio	= "teste.jrxml";
	Map parameters = new HashMap(); 
					
            try {
JasperDesign design 	= JasperManager.loadXmlDesign(dir + relatorio); 

JasperReport jr = JasperManager.compileReport(design);
JasperPrint impressao = JasperManager.fillReport(jr,parameters,Sistema.con);
JasperViewer jrviewer = new JasperViewer(impressao,false);
jrviewer.setTitle(setTitle);
jrviewer.show();

          } catch (JRException e) {
JOptionPane.showMessageDialog( null, ""+e.getMessage(), "Aviso",
         JOptionPane.PLAIN_MESSAGE );
}
}

}

tenta assim c:\meuArquivo.jasper

Rapaz ñ deu certo ainda! se eu colocar assim no Subreport Expression ".//MeuArquivo.jasper " e tentar executar dentro do ireport o relatório funciona legal, agora se eu chamar pela minha aplicação ele gera aquela Exception: Could not load object from location : .//MeuArquivo.jasper

Você deve selecionar lá na combo box (Image Expression Class) a opção net.sf. jasperreports.engine.JasperReport e no campo abaixo você coloca a chamada de uma classe do seu projeto que retornará o caminho do seu subrelatório.

Exemplo do Expression no iReport:

br.com.<projeto>.servlet.report.ReportUtils.getReport("report/<diretorio>/<nome_do_report>)

Fonte da classe:

public static JasperReport getReport(String reportName) throws Exception { String reportPath = "/br/com/<projeto>/" + reportName + ".jasper"; InputStream stream = ReportUtils.class.getResourceAsStream(reportPath); if(stream==null){ throw new Exception("Relatório não encontrado: " + reportPath); } JasperReport report = (JasperReport) JRLoader.loadObject(stream); return report; }

Bom dia julianostr, vou te amolar + um pouco, eu vi que o exemplo que vc posto aqui é referente para aplicação j2ee, a aplicação que eu to mechendo é j2sdk, muda alguma coisa? []´s

Ops, aqui no guj tem um tópico sobre isso, veja se pode ajudar você pois ainda não passei por essa situação.

http://www.guj.com.br/posts/list/2254.java