Olá pessoal tudo bem?
Estou tentando visualizar um relatório no browser usando uma api que construí com Jersey, porem estou recebendo erro abaixo, para ser sincero não entendi muito bem como fazer essa API visualizar PDF no browser e gostaria de um help para entender melhor esse processo.
javax.servlet.ServletException: org.glassfish.jersey.server.ContainerException: java.io.FileNotFoundException: \tmp.pdf (O cliente não tem o privilégio necessário)
public void printGuia(int empresa, String guia, OutputStream saida) {
try {
// compila jrxml em memoria
JasperReport jasper = JasperCompileManager.compileReport(this.getClass().getClassLoader().getResource("GuiaANS.jrxml").getPath());
// preenche relatorio
JasperPrint print = JasperFillManager.fillReport(jasper, null, new JRBeanCollectionDataSource(master));
// exporta para pdf
JRExporter exporter = new JRPdfExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, print);
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, saida);
exporter.exportReport();
} catch (Exception e) {
throw new RuntimeException("Error", e);
}
}
@GET
@Path("/pdf")
@Produces("application/pdf")
public javax.ws.rs.core.Response getPdf() throws Exception {
OutputStream fileInputStream = new FileOutputStream("\\tmp.pdf");
new GuiaAnsBusiness(em).printGuia(3, "NR GUIA PRESTADOR", fileInputStream);
javax.ws.rs.core.Response.ResponseBuilder responseBuilder = javax.ws.rs.core.Response.ok((Object) fileInputStream);
responseBuilder.type("application/pdf");
responseBuilder.header("Content-Disposition", "filename=tmp.pdf");
return responseBuilder.build();
}