Home > Enterprise >  Spring Cannot access REST Controller on localhost (404)
Spring Cannot access REST Controller on localhost (404)

Time:05-17

Hello i hope you are doing please im trying to solve the whole weekend anyone can help

The Application runs properly but i get 404 in response this is the response when I submit a get request to the endpoint : { "timestamp": "2022-05-17T08:29:49.747 00:00", "status": 404, "error": "Not Found", "path": "/auditoria/all" } this my project structure :

project structure

FcbApplication.java

package com.example.demo;
import com.example.*;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;

@SpringBootApplication
@ComponentScan("com")

public class FcbApplication {

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

}

Auditoria.java

package com.example.demo.model;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name = "auditoria")
public class Auditoria implements Serializable {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(nullable = false, updatable = false, name="id_auditoria")
    private Integer idAuditoria;
    private String nombre_tarea;
    private Date fecha_inicio;
    private Date fecha_fin;
    private String nombre_fichero;
    private String estado;

    public Auditoria() {
    }

    public Auditoria(Integer idAuditoria, String nombre_tarea, Date fecha_inicio, Date fecha_fin,
            String nombre_fichero, String estado) {
        this.idAuditoria = idAuditoria;
        this.nombre_tarea = nombre_tarea;
        this.fecha_inicio = fecha_inicio;
        this.fecha_fin = fecha_fin;
        this.nombre_fichero = nombre_fichero;
        this.estado = estado;
    }

    public Integer getId_auditoria() {
        return idAuditoria;
    }

    public void setId_auditoria(Integer id_auditoria) {
        this.idAuditoria = id_auditoria;
    }

    public String getNombre_tarea() {
        return nombre_tarea;
    }

    public void setNombre_tarea(String nombre_tarea) {
        this.nombre_tarea = nombre_tarea;
    }

    public Date getFecha_inicio() {
        return fecha_inicio;
    }

    public void setFecha_inicio(Date fecha_inicio) {
        this.fecha_inicio = fecha_inicio;
    }

    public Date getFecha_fin() {
        return fecha_fin;
    }

    public void setFecha_fin(Date fecha_fin) {
        this.fecha_fin = fecha_fin;
    }

    public String getNombre_fichero() {
        return nombre_fichero;
    }

    public void setNombre_fichero(String nombre_fichero) {
        this.nombre_fichero = nombre_fichero;
    }

    public String getEstado() {
        return estado;
    }

    public void setEstado(String estado) {
        this.estado = estado;
    }

    @Override
    public String toString() {
        return "Auditoria {id_auditoria="   idAuditoria   ", nombre_tarea="   nombre_tarea   ", fecha_inicio="
                  fecha_inicio   ", fecha_fin="   fecha_fin   ", nombre_fichero="   nombre_fichero   ", estado="
                  estado   "}";
    }

}

AuditoriaResource.java

import java.util.List;

import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

import com.example.demo.model.Auditoria;
import com.example.demo.service.AuditoriaService;

@RestController
@RequestMapping(value = "/auditoria")
public class AuditoriaResource {
    private final AuditoriaService auditoriaService ;
    
    public AuditoriaResource(AuditoriaService auditoriaService) {
        this.auditoriaService= auditoriaService;
    }
    
    @GetMapping("/all")
    public ResponseEntity<List<Auditoria>> getAllAuditorias(){
        List<Auditoria> auditorias=auditoriaService.findAllAuditoria();
        return new ResponseEntity<>(auditorias,HttpStatus.OK);
    }

    @GetMapping("/find/{id}")
    public ResponseEntity<Auditoria> getAuditoriaById(@PathVariable("id") Integer id){
        Auditoria auditorias=auditoriaService.findAuditoriaById(id);
        return new ResponseEntity<>(auditorias,HttpStatus.OK);
    }
}

AuditoriaRepo.java

package com.example.demo.repo;

import org.springframework.data.jpa.repository.JpaRepository;

import com.example.demo.model.Auditoria;

public interface AuditoriaRepo extends JpaRepository<Auditoria,Integer>{

    void deleteAuditoriaByIdAuditoria(Integer idAuditoria);

    Auditoria findAuditoriaByIdAuditoria(Integer idAuditoria);

}

AuditoriaService.java

package com.example.demo.service;

import java.util.List;
import java.util.Random;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.example.demo.model.Auditoria;
import com.example.demo.repo.*;
@Service

public class AuditoriaService {
    private final AuditoriaRepo auditoriaRepo;

    @Autowired
    public AuditoriaService(AuditoriaRepo auditoriaRepo) {
        this.auditoriaRepo = auditoriaRepo;
    }

    public Auditoria addAuditoria(Auditoria auditoria) {
        Random r = new Random();
        int low = 0;
        int high = 1000;
        int result = r.nextInt(high - low)   low;

        auditoria.setId_auditoria(result);
        return auditoriaRepo.save(auditoria);
    }
    
    public List<Auditoria> findAllAuditoria(){
        return auditoriaRepo.findAll();
    }
    
    
    public Auditoria updateAuditoria(Auditoria auditoria) {
        return auditoriaRepo.save(auditoria);
    }
    
    public Auditoria findAuditoriaById(Integer id) {
        return auditoriaRepo.findAuditoriaByIdAuditoria(id);
        //exception minute 36
    }
    public void deleteAuditoria(Integer id) {
        auditoriaRepo.deleteAuditoriaByIdAuditoria(id);
    }
}

CodePudding user response:

  1. Move controller to separate package (ex. com.example.demo.controller)
  2. Remove @ComponentScan annotation, as Spring will do it by default.
  • Related