我已经检查了RestTemplate does send null values in object,但是我的问题似乎是由其他原因引起的。
我有两个服务,服务A POST
的数据要服务B。在服务A中,您可以找到以下代码:
HttpEntity<SomeEntity> httpHt = new HttpEntity<SomeEntity>(ht);
ResponseEntity<SomeEntity> htResponse = restTemplate.exchange(uri, HttpMethod.POST, httpHt, new ParameterizedTypeReference<SomeEntity>() {});
服务B失败,因为检索到的实体为空。我在ht
中检查了null
,但没有,我可以使用它的任何吸气剂并显示其值。
我添加了这一行
restTemplate.setInterceptors(Collections.singletonList(new LoggingRestTemplate()));
我found on SO。从创建的日志中,我可以看到RestTemplate claims 已发送数据:
14:56:11.864 [http-nio-8090-exec-1] DEBUG d.a.e.a.c.l.LoggingRestTemplate - Request body : {"SomeId":null,"OtherId":"17","version":0}
由于还使用REST调用了服务A,因此我检查了是否可以在跟踪中看到该数据。并且显示了有效负载,因此我捕获数据的方式应该没有问题:
我尝试使用Spring Boot 2.0.6和2.1.0,效果相同。据我所知,使服务A无法正确发送数据。