Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Erro ao Cadastrar Pets

De alguma forma meu postman nao consegue achar a imagem na pasta storage, ja tentei varios recursos e nada funciona!Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta
solução!

Bom dia, o stacktrace está entregando exatamente onde está o problema.

O ponto-chave é este trecho:

java.io.FileNotFoundException:
C:\Curso\Excecoes\java-exceptions-projeto_inicial\src\main\resources\storage\94f19dff-84ca-49f3-9717-15062c0b0d27.jpg
(O sistema não pode encontrar o caminho especificado)

Ou seja: não é o Postman que não acha a imagem.
Quem não está encontrando o caminho é a sua aplicação Java, no momento em que tenta salvar ou acessar o arquivo.

Postman NÃO envia o arquivo “a partir da pasta storage”

No Postman, quando você faz:

  • form-data
  • campo imagem do tipo File
  • seleciona gato.jpg

O Postman:

  • lê o arquivo do seu computador
  • envia os bytes no corpo da requisição

Ele não sabe e não liga para a pasta storage do seu projeto Java.

A pasta storage é responsabilidade exclusiva do backend.

O erro real: a pasta storage não existe em tempo de execução

Esse caminho aqui:

src/main/resources/storage

é o problema clássico.

Durante a execução:

  • o Spring não trabalha diretamente dentro de src/main/resources
  • principalmente quando você tenta escrever arquivos

Se a pasta não existir fisicamente no sistema de arquivos, o Java lança exatamente esse erro.

Mesmo que ela exista no projeto, o Java não cria diretórios automaticamente.

O que normalmente a atividade espera:

Nessa atividade do curso, o objetivo é justamente você tratar essa exceção e entender que:

  • salvar arquivos pode falhar
  • o caminho pode não existir
  • você precisa lidar com isso

Ou seja: o erro faz parte do aprendizado.

Como resolver de forma simples (e correta):

Antes de salvar a imagem, você precisa garantir que a pasta existe.

Exemplo de lógica (conceito, não código pronto):

  • Definir um caminho fora de resources

    • Ex: storage/ na raiz do projeto
  • Verificar:

    • se a pasta existe → ok
    • se não existe → criar

Em Java isso é feito com File ou Paths + Files.createDirectories(...).