【问题标题】:How to fix 500 server errors on spring boot如何在 Spring Boot 上修复 500 个服务器错误
【发布时间】:2019-10-30 14:05:22
【问题描述】:

我写了这些webservices,并在postman上测试过,但是在创建、登录、findbyId和delete测试时遇到错误500。但是 findAll 方法没有问题。

如果没有的话,我想有不同方法的修复如果你能解释问题。

这是spring-boot 2.2.0

package com.bni.Gestion_Operation.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import com.bni.Gestion_Operation.entities.Utilisateur;
import com.bni.Gestion_Operation.repositories.IUtilisateur;

@RestController
@RequestMapping("/utilisateur")
public class UtilisateurController {
    @Autowired
    private IUtilisateur utilisateurRepository;

    @GetMapping("/")
    public ResponseEntity findAll() {
        return ResponseEntity.ok(utilisateurRepository.findAll());
    }

    @GetMapping("/{matricule}")
    public ResponseEntity findUtilisateurById(@PathVariable(name="matricule") String matricule) {
        if (matricule == null) {
            return ResponseEntity.badRequest().body("Impossible de recuperer un utilisateur null");
        }
        Utilisateur utilisateur = utilisateurRepository.getOne(matricule);
        if (utilisateur == null) {
            return ResponseEntity.notFound().build();
        }
        return ResponseEntity.ok().body(utilisateur);
    }

    @PostMapping("/cree")
    public ResponseEntity creeUtilisateur(@RequestBody Utilisateur utilisateur) {
        if (utilisateur == null) {
            return ResponseEntity.badRequest().body("Impossible de recuperer un utilisateur null");
        }
        Utilisateur utilisateurCree = utilisateurRepository.save(utilisateur);
        return ResponseEntity.ok(utilisateurCree);
    }

    @DeleteMapping("/{matricule}")
    public ResponseEntity supprimerUtilisateur( @PathVariable(name="matricule") String matricule) {
        if (matricule == null) {
            return ResponseEntity.badRequest().body("Impossible de supprimer un utilisateur, matricule null");
        }
        Utilisateur utilisateur = utilisateurRepository.getOne(matricule);
        if (utilisateur == null) {
            return ResponseEntity.notFound().build();
        }
        return ResponseEntity.ok("Utilisateur supprimé avec succès!");
    }

    @PostMapping("/login")
    public ResponseEntity login( @RequestParam(name="matricule") String matricule, @RequestParam(name = "password") String password) {
        if (StringUtils.isEmpty(matricule) || StringUtils.isEmpty(password)) {
            return ResponseEntity.badRequest().body("Veuilez renseigner votre login et votre mot de passe SVP");
        }
        return ResponseEntity.ok("Connexion reussi avec succès!");
    }
}  

【问题讨论】:

  • HTTP 状态 500 是服务器端的错误,你检查日志了吗?
  • 向我们展示 1. 您发送的请求; 2. 堆栈跟踪
  • link@MatheusCirillo
  • 不,我没有检查日志。你能告诉我去日志的路吗? @Arnaud
  • 看来您需要在您的网络服务器上启用 POST 方法。

标签: java spring-boot controller


【解决方案1】:

您没有使用 HTTP 方法 POST 映射任何 /utilisateur。

向/utilisateur/cree发送相同的请求,它就会起作用。

或者只是从creeUtilisateur方法的注解中删除/cree。

@PostMapping
public ResponseEntity creeUtilisateur(@RequestBody Utilisateur utilisateur) {
    if(utilisateur==null) {
        return ResponseEntity.badRequest().body("Impossible de recuperer un utilisateur null");
    }
    Utilisateur utilisateurCree = utilisateurRepository.save(utilisateur);
    return ResponseEntity.ok(utilisateurCree);
}

【讨论】:

    猜你喜欢
    • 2020-10-02
    • 2023-01-28
    • 2019-04-13
    • 2020-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多