Bom dia pessoal! Estou com um problema, que imagino ser bem simples de se resolver, mas não estou conseguindo resolvê-lo. É o seguinte: Tenho uma aplicação que chama um Report, mas ao gerar o relatório em .pdf o adobe apresenta erro. Alguém já tratou esse tipo de situação.
[code] public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
boolean lPermissaoImpressao = true;
ReportVO lReport = new ReportVO();
UsuarioVO lUsuario = new UsuarioVO();
lUrlSistema = request.getRequestURL().toString().replace(request.getServletPath(), Constantes.VAZIO);
ServletOutputStream out = response.getOutputStream();
ByteArrayOutputStream doc = null;
try {
lReport = ((ReportVO) request.getSession().getAttribute("sReport"));
if (lReport == null) {
response.sendRedirect(lUrlSistema);
}
else {
lUsuario = ((UsuarioVO) request.getSession().getAttribute("usuarioAutenticado"));
String lUrlReport = getUrlRelatorio(lReport);
if (lUrlReport.length() > 0) {
doc = getReport(lUrlReport, response);
response.setContentType(CONTENT_TYPE);
response.setHeader("Content-Disposition","attachment; filename=\"SecurityPatterns.pdf\"; encoding=\"ISO-8859-1\"");
response.setContentLength(doc.size());
doc.writeTo(out);
}
else {
out.println(NAO_EXISTEM_DADOS);
}
}
}
catch (Exception e) {
e.printStackTrace();
LOG.error(e.getMessage(), e);
}
finally {
if (doc != null) {
doc.close();
}
if (out != null) {
out.flush();
out.close();
}
}
}[/code]
/**Método responsável por gerar o relatório
[code]public static void gerarReport(ReportVO pReport) throws Exception {
validarCamposReport(pReport);
HttpServletRequest request = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
pReport.setUrlServidorRep(getProperty(“url.servidor.relatorios”));
request.getSession().setAttribute(“sReport”, pReport);
request.getSession().setAttribute(“usuarioAutenticado”, getUserSession());
String lUrlSistema = request.getRequestURL().toString().replace(request.getServletPath(), "/").concat(
SERVLET_REPORT);
StringBuffer lRetorno = new StringBuffer();
lRetorno.append("javascript:var w = window.open('");
lRetorno.append(lUrlSistema);
lRetorno.append("','Relatorio','resizable=yes,menubar=no,");
lRetorno.append("scrollbars=no,status=no,toolbar=no,fullscreen=no,");
lRetorno.append("dependent=no,width=758,height=600,left=100,top=200');");
lRetorno.append(" if (window.execScript) { ");
lRetorno.append(" window.execScript(w,JavaScript); ");
lRetorno.append(" } else eval(w); ");
JavascriptContext.addJavascriptCall(FacesContext.getCurrentInstance(), String.valueOf(lRetorno));
}[/code]
[color=red]Erro do Acrobat:
o Adobe Reader não pode abrir o arquivo porque não há suporte a esse tipo de arquivo ou ele foi danificado (por exemplo, foi enviado como anexo de e-mail e não foi decodificado corretamente).
[/color]