2
respostas

Whitelabel Error Page no localhost:8080/topicos

Eu estou usando o vscode e quando subo os containers e dou o start.sh, não carrega os dados da aplicação, só aparece a mensagem da imagem. Alguém teve esse erro ou é só devido o vscode?

OBS. O endereço 192.168.0.107 é da minha maquina que tem o docker

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
2 respostas

Olá, Estudante!

Isso, provavelmente, não é um problema do VSCode.

Essa tela (a "Whitelabel Error Page") é a página de erro padrão do Spring Boot (que é o framework Java que você provavelmente está usando no seu projeto). O VSCode é apenas seu editor de texto, ele não interfere em como a aplicação roda depois que ela está "empacotada" em um container.

A informação mais importante na sua imagem é esta:
There was an unexpected error (type=Internal Server Error, status=500).

Um erro status=500 significa "Internal Server Error" (Erro Interno do Servidor). Isso quer dizer que o seu navegador conseguiu se conectar à sua aplicação no container, mas ocorreu um erro grave dentro da aplicação quando ela tentou processar a requisição para a página /topicos.

Como descobrir o problema real

O verdadeiro erro não aparece no navegador por questões de segurança. Para vê-lo, você precisa olhar os logs do container da sua aplicação.

  1. Abra um terminal (pode ser o do VSCode ou qualquer outro).
  2. Descubra o nome ou ID do seu container da aplicação. Você pode usar o comando:
    docker ps
    
  3. Depois, use o comando docker logs para ver o que foi impresso pela aplicação:
    docker logs <nome_ou_id_do_container_da_aplicacao>
    
    • Se você estiver usando o Docker Compose, pode ser mais fácil usar docker-compose logs <nome_do_servico_da_api>.
    • Para ver os logs "ao vivo" enquanto você tenta acessar a página, adicione a flag -f: docker logs -f <nome_do_container>
O que procurar nos logs

Ao rodar o comando logs, role até o final e procure por um bloco grande de texto que pareça uma exceção Java. Geralmente começa com java.lang.SomeException... ou Caused by: ....

Os culpados mais comuns para esse tipo de erro (aplicação sobe, mas dá erro 500) são:

  1. Falha na Conexão com o Banco de Dados: Este é o mais provável. A aplicação Spring (no container A) não está conseguindo se conectar ao seu banco de dados (que pode estar no container B ou na sua própria máquina).
  2. Configuração Incorreta: Verifique seu arquivo application.properties (ou .yml). Se o banco de dados está em outro container, o endereço (URL) do banco não pode ser localhost ou 127.0.0.1. Você deve usar o nome do serviço do Docker (ex: jdbc:mysql://db:3306/meu_banco, onde db é o nome do serviço do banco no seu docker-compose.yml).
  3. Aplicação Subiu Antes do Banco: Às vezes a aplicação sobe mais rápido que o banco de dados. Ao tentar se conectar, o banco ainda não está pronto e a aplicação quebra. O log também vai mostrar isso (algo como "Connection refused").

Resumo: Seu problema não é o VSCode, muito provavelmente. É um erro de runtime na sua aplicação Spring Boot. Verifique os logs do container para achar a exceção Java.

Se não conseguir identificar o problema, cole o trecho da exceção Java (o erro) aqui no fórum que tentamos ajudar!

Abraço!

Olá,

O Terminal saída do terminal ? Tente rodar novamente com algum opção pra verbosidade e cola aqui a saída pra vermos melhor