Imagens some depois que reinicio a aplicação - jsf

13 respostas
tmvolpato

boa tarde,

Estou utilizando o fileupload do prime faces.

Optei por salvar o nome da imagem no banco, até ai tudo bem
consigo salvar e recuperar a imagem…

O problema vem qdo eu tenho que reiniciar a aplicação, dai as imagens não são mais exibidas…

Alguem já passou por isso?

Fico no aguardo

13 Respostas

hckoalla

vei veh se vc ta salvando msm a img no seu banco

ou posta teu codigo ae, mas ta com primefaces 3.3 ? e teu jsf ?

tmvolpato

Está , a imagem aparece na pasta

o unico problema é que ela some depois que reinicio aplicação(como está em produção isso vai acontecer várias vezes e até depois msm)
eu pesquisei e vi que isso é normal tbm a imagem apagar

Mas eu gostaria de saber se tem como ela permanecer
já vi que alguns salvar fora da aplicação para que isso não aconteça
esse é o unico jeito?

hckoalla

bom que eu saiba um otimo metodo é salvar a imagem em byte[], vc pode fazer assim na bean:

public void subirImagem(FileUploadEvent event){
	pessoa.setImage(event.getFile().getContents());
}

e passaria pelo “fileUploadListener” na page, da uma olhada no userguide do primefaces qualquer coisa

<p:fileUpload fileUploadListener="#{pessoaBean.subirImagem}" />
Mordor

Na verdade me parece que vc está salvando o teu arquivo na pasta de deploy da tua aplicação.
Todo a vez que fizer redeploy vai pagar tudo mesmo.
Tenta colocar em uma pasta fora projeto.

tmvolpato

[b]Não é qdo eu reinicio e sim qdo eu mando gerar novamente o .WAR
lembrando que sei que isso é normal, porque optei em salvar na pasta da aplicação

[/b]

tmvolpato

Fora do projeto

por exemplo: C:\imagens

assim?

Mordor:
Na verdade me parece que vc está salvando o teu arquivo na pasta de deploy da tua aplicação.
Todo a vez que fizer redeploy vai pagar tudo mesmo.
Tenta colocar em uma pasta fora projeto.

Mordor

Quando vc gera um novo war. na hora do deploy deste novo arquivo ele exclui a pasta antiga.
Toda a vez que gerar um novo .war ou .ear vai perder os arquivos.
Eu colocaria em uma pasta fora, por exemplo na raiz do root se precisa acesso direto via url.

Mordor

Qual o teu conteiner?

tmvolpato

Glassfish V3.1

Mordor

Você deve ter o seginte diretorio:
<diretorio de instalação do glassfish>\domains\domain1\docroot

Dentro do docroot vc pode criar uma pasta imagens por exemplo.
Na URL fica disponivel assim: \imagens

Esse dir não é apagado no deploy.

tmvolpato

Mordor:
Você deve ter o seginte diretorio:
<diretorio de instalação do glassfish>\domains\domain1\docroot

Dentro do docroot vc pode criar uma pasta imagens por exemplo.
Na URL fica disponivel assim: \imagens

Esse dir não é apagado no deploy.

Mas a minha aplicação precisa ter esse caminho informado?
é só trocar o caminho no qual eu estava usando?

Mordor

Para salvar tenta pegar o dir da aplicação e concatena com o do docroot.
No meu caso aqui é "c:\glassfish\domains\domain1\docroot"
Na URL vai ficar por exemplo localhost:8080\imagens\

tmvolpato

estou testando aqui

valeu pela ajuda por enquanto

Criado 31 de maio de 2012
Ultima resposta 31 de mai. de 2012
Respostas 13
Participantes 3