JSF - Sistema com fotos (Glasshfish)

10 respostas
rsaleixo

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

10 Respostas

AnjoVingador

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

rsaleixo

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

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.
R

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.

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:

alias

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

FernandoFranzini

alias:
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.

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


Sim…

alias

FernandoFranzini:
alias:
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.

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


Sim…

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…?

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

alias

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

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…

FernandoFranzini

alias:
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

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…


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.

Criado 16 de setembro de 2011
Ultima resposta 21 de set. de 2011
Respostas 10
Participantes 5