Spring 引导:失败..写入 HTTP 消息:springframework.http.converter.HttpMessageNotWritableException

Spring Boot: Failed .. write HTTP message: springframework.http.converter.HttpMessageNotWritableException

我正在编写一个简单的 spring 启动 REST API 以供娱乐。 Spring 引导对我来说是新的。通过调用“/搜索”我得到以下异常:

无法写入 HTTP 消息:org.springframework.http.converter.HttpMessageNotWritableException:找不到 return 类型值的转换器:class java.util.LinkedHashMap

我的代码:

@PostMapping("/搜索") public ResponseEntity getSearchResultViaAjax(@Valid @RequestBody SearchCriteria search, Errors 错误) {

   ResponseBody result = new ResponseBody();

    //If error, just return a 400 bad request, along with the error message
    if (errors.hasErrors()) {

        result.setMsg(errors.getAllErrors().stream().map(x -> x.getDefaultMessage()).collect(Collectors.joining(",")));
        return ResponseEntity.badRequest().body(result);

    }

    List<User> users = userService.findByUserNameOrEmail(search.getUsername());
    if (users.isEmpty()) {
        result.setMsg("no user found!");
    } else {
        result.setMsg("success");
    }
    result.setResult(users);

    return ResponseEntity.ok(result);

}

如有任何帮助,我们将不胜感激。

提前致谢!

确保在相关 entity/pojo 类.

中生成了 getter 和 setter

还要确保在构建文件中正确设置了所有必需的依赖项。 如果您使用的是 Maven,请检查以下 jackson libs 依赖项。

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.4.3</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.4.3</version>
</dependency>

User 包含 LinkedHashMap 而 Spring 不知道如何将其转换为 JSON。您应该尝试使用常规 HashMap.