Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么我在使用SpringBoot应用程序的postman中没有收到错误消息_Java_Spring Boot_Exception_Postman - Fatal编程技术网

Java 为什么我在使用SpringBoot应用程序的postman中没有收到错误消息

Java 为什么我在使用SpringBoot应用程序的postman中没有收到错误消息,java,spring-boot,exception,postman,Java,Spring Boot,Exception,Postman,我想“管理员未找到”的消息显示在邮递员在无效登录,但我得到这个 作为邮递员输出 { "timestamp": "2020-05-19T13:59:01.172+00:00", "status": 404, "error": "Not Found", "message": "", "path": "/api/adminLogin" } AdminController.java @RestController @RequestMapping(

我想“管理员未找到”的消息显示在邮递员在无效登录,但我得到这个 作为邮递员输出

{
    "timestamp": "2020-05-19T13:59:01.172+00:00",
    "status": 404,
    "error": "Not Found",
    "message": "",
    "path": "/api/adminLogin"
}
AdminController.java

    @RestController
    @RequestMapping("/api")
    public class AdminController {

    @Autowired
    UserRepository userRepository; 

    @PostMapping("/adminLogin")
    public User login(@RequestBody User user) throws ResourceNotFoundException {

        User user1 = userRepository.findByUserName(user.getUserName());
        if(user1 != null && user1.getRole().equalsIgnoreCase("admin")) {
            return user1;
        }
        else 
        {
            throw new ResourceNotFoundException("Admin not found");
        }
    }
@ResponseStatus(HttpStatus.NOT_FOUND)
public class ResourceNotFoundException extends RuntimeException {

    private static final long serialVersionUID = 1L;

    public ResourceNotFoundException() {
        super();
    }

    public ResourceNotFoundException(String message) {
        super(message);
    }

    public ResourceNotFoundException(String message, Throwable cause) {
        super(message, cause);
    }
}
ResourceNotFoundException.java

    @RestController
    @RequestMapping("/api")
    public class AdminController {

    @Autowired
    UserRepository userRepository; 

    @PostMapping("/adminLogin")
    public User login(@RequestBody User user) throws ResourceNotFoundException {

        User user1 = userRepository.findByUserName(user.getUserName());
        if(user1 != null && user1.getRole().equalsIgnoreCase("admin")) {
            return user1;
        }
        else 
        {
            throw new ResourceNotFoundException("Admin not found");
        }
    }
@ResponseStatus(HttpStatus.NOT_FOUND)
public class ResourceNotFoundException extends RuntimeException {

    private static final long serialVersionUID = 1L;

    public ResourceNotFoundException() {
        super();
    }

    public ResourceNotFoundException(String message) {
        super(message);
    }

    public ResourceNotFoundException(String message, Throwable cause) {
        super(message, cause);
    }
}
我的邮递员网址

“我的管理员登录成功”运行正常

您可以使用它修改响应正文和状态代码。如果您想返回JSON格式,您应该创建一个新类,如下所示

@Data //lombok
public class ResponseModel {

    String message;

    public ResponseModel(String message) {
        this.message = message;
    }
}
 @PostMapping("/adminLogin")
    public ResponseEntity<?> login(@RequestBody User user) {

        User user1 = userRepository.findByUserName(user.getUserName());
        if(user1 != null && user1.getRole().equalsIgnoreCase("admin")) {
            return new ResponseEntity<>(user1, HttpStatus.OK);
        }
        else 
        {
            return new ResponseEntity<>(new ResponseModel("Admin not found"), HttpStatus.NOT_FOUND);
        }
    }
你的代码是这样的

@Data //lombok
public class ResponseModel {

    String message;

    public ResponseModel(String message) {
        this.message = message;
    }
}
 @PostMapping("/adminLogin")
    public ResponseEntity<?> login(@RequestBody User user) {

        User user1 = userRepository.findByUserName(user.getUserName());
        if(user1 != null && user1.getRole().equalsIgnoreCase("admin")) {
            return new ResponseEntity<>(user1, HttpStatus.OK);
        }
        else 
        {
            return new ResponseEntity<>(new ResponseModel("Admin not found"), HttpStatus.NOT_FOUND);
        }
    }
@PostMapping(/adminLogin)
公共响应身份登录(@RequestBody User){
User user1=userRepository.findByUserName(User.getUserName());
if(user1!=null&&user1.getRole().equalsIgnoreCase(“admin”)){
返回新的响应属性(user1,HttpStatus.OK);
}
其他的
{
返回新的ResponseEntity(新的ResponseModel(“未找到管理员”)、HttpStatus.not_found);
}
}

将控制器响应概括为响应是标准模式

但是,您也可以使用以下方法解决您的特定问题:

在build.gradle/POM.XML中添加以下依赖项

runtimeOnly('org.springframework.boot:spring-boot-devtools')
pom.xml

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <scope>runtime</scope>
    </dependency>

您将开始看到异常消息。

我通过在application.properties文件中包含以下代码解决了问题

server.error.include-message = always

您是在对邮递员进行GET还是POST查询测试?POST request@Ahmedrebaii如果您添加邮递员请求-url,method,您确定您的API路径:/API/adminLogin吗?@AhmedRebai是的。我的登录成功在application.properties文件中正常工作,谢谢