Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Erro 404 - Tentando chamar serviço rest

Boa tarde,

Estou tentando fazer um teste chamando o serviço, porém quando tento pelo postman da erro 404. As classes estão com as anotações necessaria. Poderia me dizer onde estou errando?

PagamentosApplication

@SpringBootApplication
public class PagamentosApplication {

    public static void main(String[] args) {
        SpringApplication.run(PagamentosApplication.class, args);
    }


}

Pagamentos Controller

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping
public class PagamentosController {

    @GetMapping("/hello")
    public String hello(){
        return "HELLO";
    }

}

Erro postman:

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

Estrutura de pastas:

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

3 respostas

Oi Lucas! Tudo certo?

Na url do Postman, você está usando /pagamentos/hello. Porém, no seu GetMapping está mapeada apenas a parte do hello. Você pode tanto tirar a parte de pagamentos da url, quanto adicionar, no @RequestMapping, a parte de pagamentos:

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/pagamentos")
public class PagamentosController {

    @GetMapping("/hello")
    public String hello(){
        return "HELLO";
    }

}

Acredito que, de algumas dessas maneiras, seu código vai rodar!

Espero ter ajudado, abraços e bons estudos!

Olá Iasmin,

Muito Obrigado por responder.

Efetuei os ajustes, porém estou tendo mesmo erro:

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

Controller:

package com.br.alurafood.pagamentos.controller;


import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/pagamentos")
public class PagamentosController {

    @GetMapping("/hello")
    public String hello(){
        return "HELLO";
    }

}

No console não retorna nenhum erro:

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

Meu Gradle:


plugins {
    id 'java'
    id 'org.springframework.boot' version '3.0.3'
    id 'io.spring.dependency-management' version '1.1.0'
}

group = 'com.br.alurafood'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '17'

configurations {
    compileOnly {
        extendsFrom annotationProcessor
    }
}

repositories {
    mavenCentral()
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
    implementation 'org.springframework.boot:spring-boot-starter-validation'
    implementation 'org.springframework.boot:spring-boot-starter-web'
    implementation 'org.flywaydb:flyway-core'
    implementation 'org.flywaydb:flyway-mysql'
    compileOnly 'org.projectlombok:lombok'
    developmentOnly 'org.springframework.boot:spring-boot-devtools'
    runtimeOnly 'com.mysql:mysql-connector-j'
    annotationProcessor 'org.projectlombok:lombok'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

tasks.named('test') {
    useJUnitPlatform()
}
solução!

Esto usando a versão do Springboot 3.0.3, no qual possui um bug de não reconhecer path com espaço. Fiz o downgrade da versão, e funcionou normalmente (contendo os espaços). Na versão 3.0.3 não ocorre da mesma maneira. Segue link do issue que esta acompnhando esse problema: https://github.com/spring-projects/spring-boot/issues/34379

Troquei o projeto de pasta, e funcionou normalmente na versão 3.0.3, sem conter espaços no diretorio do projeto.

Espero que ajude os demais que tiverem o mesmo problema.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software