如何解决无法写入请求:没有找到适合使用 Feign 的请求类型的 HttpMessageConverter
我想使用 Spring Cloud Feign 客户端实现请求。我试过这个:
伪装客户端:
@FeignClient(name = "mail-service",url = "mail-service")
public interface EmailClient {
@RequestMapping(method = RequestMethod.POST,value = "/register")
void setUserRegistration(RegisterUserDTO registerUserDTO);
@RequestMapping(method = RequestMethod.POST,value = "/password_reset")
void setUserPasswordReset(PasswordResetDTO passwordResetDTO);
}
请求 DTO:
public class RegisterUserDTO {
private int id;
public RegisterUserDTO() {
}
}
控制器:
@Autowire
EmailClient emailClient;
@PostMapping("/dummy")
public ResponseEntity<?> test() {
RegisterUserDTO obj = new RegisterUserDTO();
emailClient.setUserRegistration(obj);
return ok().build();
}
Feign 配置:
feign:
client:
config:
default:
connectTimeout: 5000
readTimeout: 5000
loggerLevel: basic
eureka:
client:
serviceUrl:
defaultZone: ${EUREKA_URI:http://localhost:8761/eureka}
instance:
preferIpAddress: true
但是当我发出 POST 请求时,我得到了异常:
22:50:05.325 [http-nio-8090-exec-1] DEBUG DispatcherServlet[logResult:1101] - Failed to complete request: feign.codec.EncodeException: Could not write request: no suitable HttpMessageConverter found for request type [org.engine.plugin.dto.RegisterUserDTO]
22:50:05.328 [http-nio-8090-exec-1] DEBUG HstsHeaderWriter[writeHeaders:169] - Not injecting HSTS header since it did not match the requestMatcher org.springframework.security.web.header.writers.HstsHeaderWriter$SecureRequestMatcher@461d6969
22:50:05.329 [http-nio-8090-exec-1] DEBUG SecurityContextPersistenceFilter[doFilter:119] - SecurityContextHolder now cleared,as request processing completed
22:50:05.334 [http-nio-8090-exec-1] ERROR [dispatcherServlet][log:175] - Servlet.service() for servlet [dispatcherServlet] in context with path [/engine] threw exception [Request processing failed; nested exception is feign.codec.EncodeException: Could not write request: no suitable HttpMessageConverter found for request type [org.engine.plugin.dto.RegisterUserDTO]] with root cause
feign.codec.EncodeException: Could not write request: no suitable HttpMessageConverter found for request type [org.engine.plugin.dto.RegisterUserDTO]
你知道我该如何解决这个问题吗?
解决方法
是的,您没有在 DTO 中添加 getter 方法。
public class RegisterUserDTO {
private int id;
public RegisterUserDTO() {
}
public int getId() {
return id;
}
}
查看我添加的代码。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。