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

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

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 ?

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?

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}" />

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.

1 curtida

[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]

Fora do projeto

por exemplo: C:\imagens

assim?

[quote=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.[/quote]

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.

Qual o teu conteiner?

Glassfish V3.1

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.

[quote=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.[/quote]

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

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\

estou testando aqui

valeu pela ajuda por enquanto