JSF - Sistema com fotos (Glasshfish)

Fala Galera,

Hoje eu tenho um software em JSF em operação aqui na empresa que está tudo belezinha.

O Problema é que pediram um modulo de incluir imagem em algumas operações, e isso está me torturando. Preciso de ajuda. rs

Estas imagens são fotos tiradas de clientes, preciso salva-las em um local onde eu posso ter o acesso depois pelo proprio sistema. Tá salvando numa boa no meu projeto, o problema é que toda vez que eu implanto uma atualização no glassfish as imagens somem por estar diretório do projeto.

No próprio glassfish existe um modo que ele consiga ler um diretório distinto do projeto? Se não, estou pensando em fazer um servidor de imagens em PHP onde o meu Sistema autenticará para a visualização.

HELP!

Vlw

Você não pode salvar estas imagens no banco não?

Gostaria de evitar esta possibilidade. Já tive mta dor de cabeça…

Existe 3 opções básicas:

  1. Salvar no banco: gasta memoria da JVM, acesso ao banco, datasouce, pode gerar gerar perca de performance e gargalo, como vc ja sabe muitas dores de cabeça.
  2. Salvar em uma pasta interna do contexto: fica muito bom, só quando vc der undeploy vc perder a pasta.
  3. Salvar em uma pasta dentro servidor, mas fora do contexto: fica ótimo, as imagens ficam fora do contexto e vc pode atualizar o projeto sem mexer nas imagens e ainda fazer backups delas. Use configurações softcode para mapear esse diretório.
    Eu uso a opção 3 ha anos com muito sucesso, sem problemas.

[quote=FernandoFranzini]Existe 3 opções básicas:

  1. Salvar no banco: gasta memoria da JVM, acesso ao banco, datasouce, pode gerar gerar perca de performance e gargalo, como vc ja sabe muitas dores de cabeça.
  2. Salvar em uma pasta interna do contexto: fica muito bom, só quando vc der undeploy vc perder a pasta.
  3. Salvar em uma pasta dentro servidor, mas fora do contexto: fica ótimo, as imagens ficam fora do contexto e vc pode atualizar o projeto sem mexer nas imagens e ainda fazer backups delas. Use configurações softcode para mapear esse diretório.
    Eu uso a opção 3 ha anos com muito sucesso, sem problemas.

[/quote]

Tambem uso a opção 3,com o RichFaces e até hj n tive problemas.

Na verdade,uso um misto das opções 2 e 3.

Quando o cara salva a imagem,ela é salva na aplicação e tambem na pasta de backup que fica dentro do servidor,mas fora do contexto.

Sempre que preciso de uma imagem,faço o seguinte teste:
Existe na pasta do contexto?Se sim,uso:Se não,pego do backup e copio pro contexto.

Deu pra entender? :slight_smile:

Uma dúvida, meu amigo, como voce faz para ler esse diretorio fora do seu contexto? Um caminho absoluto para o diretorio?

[quote=alias][quote=FernandoFranzini]
3) Salvar em uma pasta dentro servidor, mas fora do contexto: fica ótimo, as imagens ficam fora do contexto e vc pode atualizar o projeto sem mexer nas imagens e ainda fazer backups delas. Use configurações softcode para mapear esse diretório.
[/quote]

Uma dúvida, meu amigo, como voce faz para ler esse diretorio fora do seu contexto? Um caminho absoluto para o diretorio?[/quote]
Sim…

[quote=FernandoFranzini][quote=alias][quote=FernandoFranzini]
3) Salvar em uma pasta dentro servidor, mas fora do contexto: fica ótimo, as imagens ficam fora do contexto e vc pode atualizar o projeto sem mexer nas imagens e ainda fazer backups delas. Use configurações softcode para mapear esse diretório.
[/quote]

Uma dúvida, meu amigo, como voce faz para ler esse diretorio fora do seu contexto? Um caminho absoluto para o diretorio?[/quote]
Sim…[/quote]

Hm…obrigado, mas aproveitando gancho, seria possível saber o diretorio absoluto onde está a instalação do servidor para procurar o citado diretorio?Atraves do ServletContext, talvez…

Algo como getServletContext().getRootPath ( :lol: ), e a partir dai procurar a sua pasta que está fora do nosso contexto…?

Não…
Dentro da especificação servlet vc pega o caminho relatório do contexto dentro do web container…
Como eu ja disse, vc pode parametrizar o caminho absoluto com sofcode, colocando como parâmetro de contexto no web.xml

[quote=FernandoFranzini]Não…
Dentro da especificação servlet vc pega o caminho relatório do contexto dentro do web container…
Como eu ja disse, vc pode parametrizar o caminho absoluto com sofcode, colocando como parâmetro de contexto no web.xml[/quote]

Entendi, mas entao, nao é possivel capturar o caminho absoluto “um nivel acima” do nosso contexto? Só por curiosidade :lol: … bem, se bem que podemos usar o getServletRealPath e tratar a string retornada né…(estou supondo que um eventual diretorio de imagens ficaria dentro do servidor de aplicação tambem)

Perdoe minha ignorancia, mas do que voce disse entendi que voce preenche um parametro no seu web.xml que contem o caminho, correto? Uma solução bacana, eu faria assim tambem…

[quote=alias][quote=FernandoFranzini]Não…
Dentro da especificação servlet vc pega o caminho relatório do contexto dentro do web container…
Como eu ja disse, vc pode parametrizar o caminho absoluto com sofcode, colocando como parâmetro de contexto no web.xml[/quote]

Entendi, mas entao, nao é possivel capturar o caminho absoluto “um nivel acima” do nosso contexto? Só por curiosidade :lol: … bem, se bem que podemos usar o getServletRealPath e tratar a string retornada né…(estou supondo que um eventual diretorio de imagens ficaria dentro do servidor de aplicação tambem)

Perdoe minha ignorancia, mas do que voce disse entendi que voce preenche um parametro no seu web.xml que contem o caminho, correto? Uma solução bacana, eu faria assim tambem… [/quote]
Sim…no ambiente de desenvolvimento vc coloca um caminho, no momento do deploy em produção vc altera o caminho!
Simples, rápido, e flexível.