如何解决原因:无法构造`org.springframework.security.core.userdetails.UserDetails`的实例不存在默认的构造函数之类的创建者
我正在尝试使用RestTemplate调用外部微服务。但这失败了,因为我使用UserDetails.class作为responseType。我知道UserDetails是一个接口,无法构造。但是我也尝试使用自定义类,甚至我尝试使用 User.class 而不是UserDetails.class。但这没用。请参见下面的示例:
API名称zuul-service
UserDetails userDetails = restTemplate.getForObject("http://localhost:8001/login/getUserDetails?username=" + userName,UserDetails.class);
这就是我要称呼的: API名称登录服务
@GetMapping("/login/getUserDetails")
public ResponseEntity<UserDetails> getUSerDetails(@Param("username") String username) throws Exception
{
LOGGER.info("Start getUSerDetails::LoginController " + username);
final Login userDetails = loginUserDetailsService.loadUserByUsername(username);
LOGGER.info("Start getUSerDetails::LoginController " + userDetails.getUsername());
return ResponseEntity.ok(new User(userDetails.getUsername(),userDetails.getPassword(),new ArrayList<>()));
}
我不知道我现在应该尝试什么以及它将如何工作。请帮助我。
解决方法
最后,您的代码应类似于:
UserDetails userDetails = (User) restTemplate.getForObject("http://localhost:8001/login/getUserDetails?username=" + userName,User.class);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。