Pegando arquivo com JSF

6 respostas
rafael.espiritosanto

Pessoal,

tô com uma dúvida meio básica.
Tô usando o Eclipse pra desenvolvar projeto em JSF
Eu quero pegar um arquivo como Stream

Daí eu faco

FacesContext().getCurrentInstance().getExternalContext.getResourceAsStream(nomeArquivo);

É assim mesmo que se faz? Aonde eu posiciono o arquivo?
Tá vindo null, daí não sei se é a maneira correta ou se estou passando
o caminho errado.

Como deveria ficar a variável nomeArquivo se tivesse a estrutura

/presentation/modulo/relatorio/modelo/arquivo.jasper

Valeu!

6 Respostas

rafael.espiritosanto

Quanto a localidade do arquivo eu resolvi o problema usando

ServletContext context = (ServletContext) FacesContext.getCurrentInstance().getExternalContext().getContext();
		String nomeArquivo = context.getRealPath("presentation//util//relatorio//modelo//FormularioImpressaoSolicitacao.jasper");

Mas a questão é que pra pegar com o getResourceAsStream continua vindo nulo

ObjectInputStream jasperStream = (ObjectInputStream) FacesContext.getCurrentInstance().getExternalContext().getResourceAsStream(nomeArquivo);

Valeu!

davidbuzatto

Olha aqui…

rafael.espiritosanto

Eu já mudei pra usar Servlet

ServletContext context = (ServletContext) getExternalContext().getContext();
		String nomeArquivo = context.getRealPath("presentation//util//relatorio//modelo//FormularioImpressaoSolicitacao.jasper");

ObjectInputStream jasperStream = (ObjectInputStream) context.getResourceAsStream(nomeArquivo);

Só que continua vindo null…

O que me deixa mais abismado ainda é que usando também

ObjectInputStream jasperStream = (ObjectInputStream) this.getClass().getResourceAsStream("FormularioImpressaoSolicitacao.jasper");

Também vem null

nicholas.bittencourt

Experimenta:

ObjectInputStream jasperStream = (ObjectInputStream) this.getClass().getClassLoader().getSystemResourceAsStream("FormularioImpressaoSolicitacao.jasper");
rafael.espiritosanto

Vem null também… só pra constar eu coloquei o arquivo .jasper
no mesmo diretório aonde está o arquivo .java e também na pasta
aonde fica os .class (Eu uso o eclipse WTP)

Valeu!!!

nicholas.bittencourt

rafael.espiritosanto:
Vem null também… só pra constar eu coloquei o arquivo .jasper
no mesmo diretório aonde está o arquivo .java e também na pasta
aonde fica os .class (Eu uso o eclipse WTP)

Valeu!!!

Qual a package?? Experimenta colocar seu arquivo na package default e testa o codigo que passei antes. Aqui sempre funciona!

Criado 14 de agosto de 2007
Ultima resposta 14 de ago. de 2007
Respostas 6
Participantes 3