Codigo para chamar SubRelatorio!

Ola, chamo o Relatorio principal que criei no Ireport,sendo que os parametros foram definidos no Ireport e o Master chama mais dois subRelatorios,abaixo eu fiz o codigo e na chamada dos subRelatorios que esta errado diz que nao localizou o Objeto Dvenda.Jasper,mas o caminho onde esta salvo esta certo:Para entenderem o relatorio Master é o cvenda e os dois sub sao dvenda e dservico:como chama-los na class
Abaixo o codigo que fiz: O JasperPrint jp1 é o princial o JasperPrint jp2 e JasperPrint jp3 Subrelatorio
Desde ja agradeço

[code]
int codvenda=8;
public RelTesteCVenda(){

    try{
 
     Connection con= new conexao2().getConnection(); 
     HashMap parametro = new HashMap();   
     parametro.put("codvenda",codvenda);   
   
    
     
     JasperPrint jp1 = JasperFillManager.fillReport("C:/SYSTEMDL/Relatorio/CVenda.jasper",parametro,con);   
     JasperViewer jrv1 = new JasperViewer(jp1);   
     jrv1.setVisible(true);   
 
     JasperPrint jp2 = JasperFillManager.fillReport("C:/SYSTEMDL/Relatorio/DVenda.jasper",parametro,con);   
     JasperViewer jrv2 = new JasperViewer(jp2);   
     jrv2.setVisible(true);   
     
    JasperPrint jp3 = JasperFillManager.fillReport("C:/SYSTEMDL/Relatorio/DServico.jasper",parametro,con);   
    JasperViewer jrv3 = new JasperViewer(jp3);   
     jrv3.setVisible(true);   [/code]