Spring 无法访问本地主机上的 REST 控制器 (404)
Spring Cannot access REST Controller on localhost (404)
你好,我希望你在做
请我尝试解决整个周末任何人都可以提供帮助
应用程序运行正常,但我收到 404 响应
这是我向端点提交获取请求时的响应:
{
“时间戳”:“2022-05-17T08:29:49.747+00:00”,
“状态”:404,
“错误”:“未找到”,
“路径”:“/auditoria/all”
}
这是我的项目结构:
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);
}
}
- 将控制器移到单独的包中(例如 com.example.demo.controller)
- 删除
@ComponentScan
注释,因为 Spring 默认会这样做。
你好,我希望你在做 请我尝试解决整个周末任何人都可以提供帮助
应用程序运行正常,但我收到 404 响应 这是我向端点提交获取请求时的响应: { “时间戳”:“2022-05-17T08:29:49.747+00:00”, “状态”:404, “错误”:“未找到”, “路径”:“/auditoria/all” } 这是我的项目结构:
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);
}
}
- 将控制器移到单独的包中(例如 com.example.demo.controller)
- 删除
@ComponentScan
注释,因为 Spring 默认会这样做。