Então, etou tentando gerar um relatório em um arquivo pdf e em seguida abri-lo dentro do browser onde está a aplicação. Só que não estou conseguindo. Olhando o logo do Tomcat, vi que sempre está surgindo a seguinte msg:
Cannot forward after response has been committed
Alguém, por favor, poderia me dizer ou me dar uma dica do que poderia estar causando isto?
Certo, senhores!!!
Tem razão…
Mas a história é a seguinte.
Eu tenho, baseado em um select no banco, um resultSet que me resulta em um arquivo PDF. Depois disso, eu preciso mostrá-lo no browser, aí que está o meu problema… não consigo!!!
Aqui vai o código:
if (rset != null) {
while (rset.next()){
if (ctLinhas > 40){
documento.newPage();
ctLinhas = 6;
linha = “------------------------------------------------------” +
“-----------------------------------------------------------------------------”;
documento.add(new Paragraph(linha));
vetor.addElement(linha);
linha = rset.getString(“nome”)+
" (CNPJ: " +
rset.getString(“cnpjf”) +
") " +
"Data: " ;
documento.add(new Paragraph(linha));
vetor.addElement(linha);
linha = “Razao Analitico " + " " + " Da Loja: " + razaoAnaliticoForm.getCodigoUnidadeInicial()+” A " +
razaoAnaliticoForm.getCodigoUnidadeFinal() + " Periodo de " + razaoAnaliticoForm.getDataInicial() + " A " +
razaoAnaliticoForm.getDataFinal() + " Pagina: " + ctPagina++ ;
documento.add(new Paragraph(linha));
vetor.addElement(linha);
linha = "Da Conta: " + razaoAnaliticoForm.getContaContabilInicial() + " A " + razaoAnaliticoForm.getContaContabilFinal() +
" ";
documento.add(new Paragraph(linha));
vetor.addElement(linha);
linha = “------------------------------------------------------” +
“-----------------------------------------------------------------------------”;
documento.add(new Paragraph(linha));
linha = “- Data - Loja Lote * Docto * ------------------ Historico ----------- C.P. – Debito –– Credito –— Saldo —”;
documento.add(new Paragraph(linha));
vetor.addElement(linha);
}
if (!flagcontactb) {
linha = rset.getString(“cd_cta_ctb”) + " " + rset.getString(“cd_empr”)+ " " + rset.getString(“descr_conta”) ;
documento.add(new Paragraph(linha));
vetor.addElement(linha);
flagcontactb = true;
ctaCtbil = rset.getString(“cd_cta_ctb”);
}
if (rset.getString(“debito”).equals(“t”)){
vlrDebito = Double.parseDouble(rset.getString(“v_lancto”));
vlrCredito = 0.00;
totDebitoCta =+ vlrDebito;
totDebitoUnid =+ totDebitoCta;
} else if (rset.getString(“credito”).equals(“t”)){
vlrCredito = Double.parseDouble(rset.getString(“v_lancto”));
vlrDebito = 0.00;
totCreditoCta =+ vlrCredito;
totCreditoUnid =+ totCreditoCta;
}
linha = rset.getString(“dt_lancto”) + " “+ rset.getString(“cd_unid”)+” “+rset.getString(“n_lote”)+” "+ rset.getString(“n_docto”) +
" " + rset.getString(“descr_hist”) + " "+ rset.getString(“cd_red_crt_part”) + " "+vlrDebito + " “+ vlrCredito+” "+vlrSaldo;
documento.add(new Paragraph(linha));
vetor.addElement(linha);
ctLinhas++;
}
}
// PdfProcessor processor = new PdfProcessor(vetor, baos);
// a partir daqui, não sei mais o que fazer!!! :shocked!:
documento.close();
if(!documento.equals(null)) {
response.setContentType(“application/pdf”);
response.setContentLength(baos.size());
response.sendRedirect(“razao.pdf”);
response.setHeader(“Content-disposition”, " inline; filename=razao.pdf");
ServletOutputStream sos = response.getOutputStream();
baos.writeTo(sos);
//send all bytes to the client.
sos.flush();
return mapping.findForward(“success”);
}
else {
response.setContentType(“text/html”);
return mapping.findForward(“failure”);
}
}
Quando você colocou Socorro fiquei com vontade de lhe passar o telefone do Resgate. Nâo o fiz porque não sei se aí no Paraná é o mesmo número que aqui.
Mas agora que você postou o código ficou mais fácil. Quer dizer, teria ficado mais fácil se o código fosse identado. Sugiro que leia rapidinho aqui.
Sobre seu problema, sugiro que dê uma estudada sobre o que faz realmente response.sendRedirect(“razao.pdf”); porque acho que isto aqui está meio deslocado.
so que eu to com o problema,
o nome titulo da pagina quando abre o pdf no browser fica o action.do, como faço para alterar isso
ja tentei
response.setHeader(“title”,“oioi”);
response.addHeader(“title”,“oioi”);