É que, para aplicações web, você nunca pode usar o caminho absoluto, sempre use caminho relativo.
Posta o código e vamos tentar resolver.
I
igson.mendes
publicvoidoncapture(CaptureEventcaptureEvent){filename=getRandomImageName();byte[]data=captureEvent.getData();ExternalContextexternalContext=FacesContext.getCurrentInstance().getExternalContext();StringnewFileName=externalContext.getRealPath("")+File.separator+"resources"+File.separator+"demo"+File.separator+"images"+File.separator+filename+".jpeg";FileImageOutputStreamimageOutput;try{imageOutput=newFileImageOutputStream(newFile(newFileName));imageOutput.write(data,0,data.length);imageOutput.close();}catch(IOExceptione){thrownewFacesException("Error in writing captured image.",e);}}
No momento que vai carregar no FileImageoutputStream, exibe o erro dizendo que o diretório não existe ou que não pode ser encontrado. Só que existe sim.
Minha aplicação está sendo feita em JSF usando o Mavem.
Você copiou o código todo do showcase, por isso não vai dar certo…
Você nao tem a pasta “demo”
D
darlan_machado
A confusão vai além disso.
Ele está considerando que a pasta resources, do maven (src/main/resources) é a pasta resources que o faces referencia.
Na verdade, será preciso criar uma pasta resources dentro de src/main/webapp para que isso funcione.
Dentro dela, aí sim, a estrutura que você vai utilizar.
I
igson.mendes
Não funciona referenciando a pasta /src/main/resoucres/images/ no caso tem de ser dentro da pasta webapp mesmo?
D
darlan_machado1 like
Cara, o faces é chato com essa questão.
E, até onde me lembro, não funciona, pois o que o faces enxerga é o mundo dentro do webapp (WebContent em projetos web dinâmicos).
I
igson.mendes
Então é isso. Grato pela ajuda.
R
raphaeloneves1 like
Não sei qual é a finalidade, mas salvar arquivo dentro da pasta da aplicação pode não ser uma boa ideia. Está ciente de que se fizer o redeploy os arquivos vão sumir?
A
ardenghe
Usando este código busco arquivos dentro do diretório “src/main/resources/…” será que te ajuda?