Problema ao enviar um PDF via Servlet  XML
Índice dos Fóruns » Desenvolvimento Web
Autor Mensagem
Pedrosa
JWizard
[Avatar]

Membro desde: 13/07/2005 13:08:08
Mensagens: 2505
Localização: São Paulo - Brasil
Offline

Bom dia, estou com a seguinte situação, gero um arquivo PDF e preciso disponibilizar o mesmo para que seja feito download:



Nessa linha ele gera a exception:



Exception:


Creio que está conflitando com o meu doPost:


O problema que essa Servlet tem multiplas ações, será que preciso criar uma outra Servlet para conseguir fazer esse download funcionar?
marcelo_mococa
Virtual Machine Man
[Avatar]

Membro desde: 03/03/2005 10:03:32
Mensagens: 622
Localização: São Paulo
Offline

no servlet ou você usa o writer ou o outputStream...
e sim, crie outra servlet para fazer o download...

Marcelo Madeira - TCS
SCJP 1.5
SCWCD 1.4
blog

Pedrosa
JWizard
[Avatar]

Membro desde: 13/07/2005 13:08:08
Mensagens: 2505
Localização: São Paulo - Brasil
Offline

Separei em uma Servlet só para isso mas agora estou com outros problemas:

Estou jogando esse pdf no Itext assim:




Mas na hora que vou mandar para a download da nullPointer, como devo gravar esse pdf para ler dessa forma, ou como adaptar na hora descarregar ?



Essa linha que causa a Exception:

otaviofcs
Virtual Machine Man
[Avatar]

Membro desde: 21/12/2006 18:01:54
Mensagens: 511
Localização: Rio de Janeiro
Offline

Só para entender. O seu pdf já existe? Esse erro parece indicar que você está tentando mandar um arquivo vazio (inexistente) para o browser. Esse seu código deveria ler um arquivo que existe. Pode ser que o seu caminho esteja errado e não exista o arquivo /arquivo.pdf.

Se você está criando dinamicamente, então não deve estar armazenado em lugar nenhum (ou pelo menos, você deveria encaminhar o buffer direto pra resposta). Tipo:



abraços,

otávio

visite o blog da Riopro em:
http://blog.riopro.com.br

Aumente a capacidade de inovação na sua empresa usando o Zest:
http://zest.com.br

Conheça também:
http://votebolsa.com.br
[WWW]
Pedrosa
JWizard
[Avatar]

Membro desde: 13/07/2005 13:08:08
Mensagens: 2505
Localização: São Paulo - Brasil
Offline

Exato não estou criando o arquivo no disco, mas ainda não funciona:

Pedrosa
JWizard
[Avatar]

Membro desde: 13/07/2005 13:08:08
Mensagens: 2505
Localização: São Paulo - Brasil
Offline

Era a minha aplicação que barrava, joguei em nova janela e funcionou!
ELIAS
Debugger
[Avatar]

Membro desde: 02/07/2003 13:43:33
Mensagens: 59
Localização: Fortaleza-ce
Offline

Pedrosa wrote:Era a minha aplicação que barrava, joguei em nova janela e funcionou!


Não entendi. Como vc jogou para uma nova janela?

"Uma coisa só é dificil enquanto ela se torna fácil."
"Se o mar não se abrir, Deus me faz andar sobre as águas."
[Email] [MSN]
juniordocpd
What is classpath?

Membro desde: 03/10/2007 11:13:24
Mensagens: 6
Localização: São José dos Campos
Offline

I aí galera do fórum, tudo bem com vocês? Espero que sim.

Estou com um problema, e como encontrei neste post uma possível solução, gostaria de pedir a ajuda de vocês para corrigir o meu erro.
Meu problema consiste do seguinte, eu tenho um diretório onde estão armazenados arquivos PDFs. O meu objeto java, contém um atributo que é o caminho para este arquivo PDF. O que eu quero fazer é, a partir de um "bean", disponibilizar para o usuário o arquivo PDF para Download.

Estou utilizando o código abaixo dentro do meu Action (struts).


no entanto, quando eu rodo o meu action, ele dá uma exception nesta linha (quando estou debugando):


A Exception lançada é essa:
EXCEPTION
exception

org.apache.jasper.JasperException: getOutputStream() has already been called for this response
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:387)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)



ROOT CAUSE
root cause

java.lang.IllegalStateException: getOutputStream() has already been called for this response
org.apache.catalina.connector.Response.getWriter(Response.java:599)
org.apache.catalina.connector.ResponseFacade.getWriter(ResponseFacade.java:195)
javax.servlet.ServletResponseWrapper.getWriter(ServletResponseWrapper.java:111)
org.apache.jasper.runtime.JspWriterImpl.initOut(JspWriterImpl.java:124)



Alguém sabe o que eu estou fazendo de errado? Já verifiquei o caminho do arquivo e está certo, o arquivo existe. Eu verifico se o arquivo existe, ele passa, informando que existe, mais não sei o porque está acontecendo isso, de "barrar" a leitura do arquivo para disponibilizar o "download" ao usuário.

Obrigado desde já pessoal, valeu mesmo.

Abraços a todos aí.

Falows...

Júnior

[Email] [MSN]
juniordocpd
What is classpath?

Membro desde: 03/10/2007 11:13:24
Mensagens: 6
Localização: São José dos Campos
Offline

Só mais uma coisa pessoal, desculpem.

O Fato do arquivo estar armazenado no meu servidor, não impede que o sistema tenha acesso a este arquivo não é?! Quero dizer, a aplicação consegue enxergar normalmente o diretório c:\Diretorio\arquivo.pdf, correto? Eu acredito que sim pelo fato de quando verifico se o arquivo existe (new File(caminho).exist) ele retorna como verdadeiro. Mas mesmo assim, eu consigo fazer a "leitura" deste arquivo???

Obrigado mais uma vez galera.

Abraços a todo aí... valeu mesmo...
[Email] [MSN]
fpaimlima
Thread.start()

Membro desde: 09/03/2005 21:30:20
Mensagens: 43
Offline

fera tente fazer um link para este arquivo... acho que vc não precisa ocupar o processamento no servidor pra alguem fazer downloads.
vcsmetallica
JavaEvangelist
[Avatar]

Membro desde: 18/06/2008 14:22:41
Mensagens: 479
Localização: Belo Horizonte
Offline

Galera,

Sei que topico do forum já é bem antiguinho.

Mas como que eu faço para abrir o pdf em outra pagina? Aqui no meu caso esta pedindo para reenviar os dados.

Att

vcsmetallica
 
Índice dos Fóruns » Desenvolvimento Web
Ir para:   
Powered by JForum 2.1.8 © JForum Team