Olá pessoal!
Estava usando uma pasta no hd para salvar fotos numa boa, agora quero salvá-las dentro do contexto da aplicação, seguindo a apostila do VRaptor fiz o método:
@Component
public class Imagens {
private File pastaImagens;
public Imagens() {
}
public Imagens(File pastaImagens) {
this.pastaImagens = pastaImagens;
}
public Imagens(ServletContext context) {
String caminhoImagens = context.getRealPath("/WEB-INF/imagens");
pastaImagens = new File(caminhoImagens);
pastaImagens.mkdir();
}
public InputStream mostraAvatar(Imovel imovel) throws FileNotFoundException {
return new FileInputStream(new File(pastaImagens, imovel.getAvatar().getUrlFoto()));
}
No Controller envio o avatar assim:
@Path("/avatar/{codImovel}")
public InputStream mostraAvatar(Long codImovel) throws FileNotFoundException {
Imovel imovel = imovelDAO.carrega(codImovel);
return imagens.mostraAvatar(imovel);
}
Mas recebo o seguinte erro na stacktrace ao chamar o método para mostrar o avatar na JSP:
Caused by: java.io.FileNotFoundException: 350.42598d20-95df-420b-95d1-7c1878fbd9f8.north-bay-road-house-1.jpg (No such file or directory)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:106)
at br.com.imobiliaria.component.Imagens.mostraAvatar(Imagens.java:83)
A pasta imagens em /WEB-INF/imagens existe e as fotos estão lá, mas mesmo assim não faz o stream, já dei um “refresh” no projeto, dei um clean tb, mesmo assim não acha. Sabem o que poderia ser?
Abraço!!
