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
.
我正在编写一个简单的 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
.