RELATORIOS IREPORT + JSF2.0
Olá pessoal do devmedia,
Alguem pode me dar uma luz? eu nao estou conseguindo gerar um relatório em pdf...
Alguem pode me dar uma luz? eu nao estou conseguindo gerar um relatório em pdf...
public void gerarRelatorio() throws IOException {
FacesContext fc = FacesContext.getCurrentInstance();
ServletContext context = (ServletContext) fc.getExternalContext().getContext();
HttpServletResponse response = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
File relatorioJasper = new File(context.getRealPath(/WEB-INF/reports/relPeticao.jasper));
// parâmetros, se houver
Map parametros = new HashMap();
byte[] bytes = null;
try {
bytes =
JasperRunManager.runReportToPdf(relatorioJasper.getPath(), parametros);
} catch (Exception e) {
e.printStackTrace();
} finally {
}
if (bytes != null && bytes.length > 0) {
// Envia o relatório em formato PDF para o browser
response.setContentType(application/pdf);
response.setContentLength(bytes.length);
ServletOutputStream ouputStream = response.getOutputStream();
ouputStream.write(bytes, 0, bytes.length);
ouputStream.flush();
ouputStream.close();
}
}
João Sobrinho
Curtidas 0
Respostas
João Sobrinho
24/10/2011
Olá pessoal do devmedia,
Alguem pode me dar uma luz? eu nao estou conseguindo gerar um relatório em pdf...
Esta dando o seguinte erro:
AVISO: StandardWrapperValve[Faces Servlet]: PWC1406: Servlet.service() for servlet Faces Servlet threw exception
java.lang.IllegalStateException: PWC3991: getOutputStream() has already been called for this response
na minha pagina esta assim:
Alguem pode me dar uma luz? eu nao estou conseguindo gerar um relatório em pdf...
public void gerarRelatorio() throws IOException {
FacesContext fc = FacesContext.getCurrentInstance();
ServletContext context = (ServletContext) fc.getExternalContext().getContext();
HttpServletResponse response = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
File relatorioJasper = new File(context.getRealPath(/WEB-INF/reports/relPeticao.jasper));
// parâmetros, se houver
Map parametros = new HashMap();
byte[] bytes = null;
try {
bytes =
JasperRunManager.runReportToPdf(relatorioJasper.getPath(), parametros);
} catch (Exception e) {
e.printStackTrace();
} finally {
}
if (bytes != null && bytes.length > 0) {
// Envia o relatório em formato PDF para o browser
response.setContentType(application/pdf);
response.setContentLength(bytes.length);
ServletOutputStream ouputStream = response.getOutputStream();
ouputStream.write(bytes, 0, bytes.length);
ouputStream.flush();
ouputStream.close();
}
}
Esta dando o seguinte erro:
AVISO: StandardWrapperValve[Faces Servlet]: PWC1406: Servlet.service() for servlet Faces Servlet threw exception
java.lang.IllegalStateException: PWC3991: getOutputStream() has already been called for this response
na minha pagina esta assim:
?xml version=1.0 encoding=UTF-8 ?>
<!DOCTYPE composition PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd>
<html xmlns:ui=http://java.sun.com/jsf/facelets
template=./modeloSistema.xhtml
xmlns:p=http://primefaces.prime.com.tr/ui
xmlns:h=http://java.sun.com/jsf/html>
<ui:composition>
<h:form>
<center><p:commandButton ajax=false action=/index.faces value=Início style=width: 135px/></center>
<p:accordionPanel autoHeight=false>
<p:tab title=Cadastros>
<h:panelGrid columns=1>
<p:commandButton value=Alunos ajax=false action=#{alunoFaces.doListAlunos()} style=width: 135px/>
<p:commandButton value=Professores ajax=false action=#{professorFaces.doListProfessor()} style=width: 135px/>
<p:commandButton value=Petições ajax=false action=#{peticaoFaces.doListPeticao()} style=width: 135px/>
</h:panelGrid>
</p:tab>
<p:tab title=Relatórios>
<h:panelGrid columns=1>
<h:commandButton value=Todas style=width: 135px action=#{peticaoFaces.gerarRelatorio()}/>
<p:commandButton value=Concluídas ajax=false style=width: 135px/>
<p:commandButton value=Hoje ajax=false style=width: 135px/>
<p:commandButton value=Atrasadas ajax=false style=width: 135px/>
</h:panelGrid>
</p:tab>
</p:accordionPanel>
<center><p:commandButton ajax=false action=#{professorFaces.doLogout()} value=Logout style=width: 135px/></center>
</h:form>
</ui:composition>
</html>
GOSTEI 0
João Sobrinho
24/10/2011
Puts estava esquecendo a conexão... hehehe :/
tudo certo nesse código :D
Abraço
tudo certo nesse código :D
Abraço
GOSTEI 0
Davi Costa
24/10/2011
Show de bola João.
Assim que possível fechar o chamado.
att Davi
Assim que possível fechar o chamado.
att Davi
GOSTEI 0
Dyego Carmo
24/10/2011
Arrumou ?
Poderia fechar o chamado ?
Valeu !
Poderia fechar o chamado ?
Valeu !
GOSTEI 0
Mauricio Silva
24/10/2011
E qual foi o resultado final?
Posta o código por gentileza.
Abraço.
Posta o código por gentileza.
Abraço.
GOSTEI 0
Esmeraldina Silva
24/10/2011
Olá João,
Tô vendo que vc resolveu seu problema. Vc poderia me ajudar?
Preciso imprimir os dados da minha tabela e não sei por onde começar.
Fiz duas aplicações: Uma cadastrando os dados na tabela e outra com IReport, lendo e imprimindo.
Agora eu preciso imprimir na aplicação que criei de cadastro e não sei como.
Tô vendo que vc resolveu seu problema. Vc poderia me ajudar?
Preciso imprimir os dados da minha tabela e não sei por onde começar.
Fiz duas aplicações: Uma cadastrando os dados na tabela e outra com IReport, lendo e imprimindo.
Agora eu preciso imprimir na aplicação que criei de cadastro e não sei como.
GOSTEI 0