Usando JasperReports com um caminho relativo

Tenho um aplicativo Web e o cliente solicitou a visualização de alguns relatórios. A abordagem foi usar o iReport e mostrar a eles o relatório na tel

Eu já perguntei algo assim. Mas hoje eu descobri que os caminhos para os arquivos de relatório (jrxml) são absolutos. Então eu tenho que mudar o programa para que ele aceite caminhos relativos. Eu tenho tentado fazer isso, mas parece que nem os arquivos jrxml nem os arquivos compilados (.jasper) aceitam caminhos relativos para nem compilar ou preencher o relatório.

Isto é o que eu tenho até aqui:

//path is generated as request.getContextPath() + "/jrxmlFiles/"
public void generateReport(HttpServletResponse res, ConexionAdmin con, String path) throws Exception{ 

    ServletOutputStream out = null;
    ByteArrayOutputStream bos    = new ByteArrayOutputStream();

    JasperDesign jasperDesign = JRXmlLoader.load(path);
    JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);

  byte[] bytes = JasperRunManager.runReportToPdf(jasperReport, pars, con.initConexion());
        res.setContentType("application/pdf");
  res.setContentLength(bytes.length);
  out = res.getOutputStream();
  out.write(bytes, 0, bytes.length);

  res.setHeader("Cache-Control", "cache");
  res.setHeader("Content-Disposition", "attachment; filename=report.pdf"); 
  res.setHeader("Pragma", "cache");
  res.setContentLength(bos.size());

  out.write(bos.toByteArray());
  out.flush();
  bos.close();
  out.close(); 
  res.flushBuffer();
}

Isso parece funcionar com caminhos absolutos, mas me joga:

Exception Message
net.sf.jasperreports.engine.JRException: java.io.FileNotFoundException

quando alterado para um caminho relativo. Pesquisei na rede sem sucesso em como mudar para os meus ataques.

Eu tenho o javaDoc para a API do jasper, mas prefiro não lê-lo se puder ajudá-l

questionAnswers(2)

yourAnswerToTheQuestion