Я проверил RestTemplate уже отправляет нулевые значения в объекте , но мои проблемы, похоже, вызваны чем-то другим.
У меня есть две службы, данные службы A POST
s для службы 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()));
который я нашел на SO . Из созданного журнала я вижу, что RestTemplate утверждает отправлены данные:
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}
Но , когда я использую сетевой трафик захвата, я вижу, что полезная нагрузка не отправляется:
Поскольку служба A также вызывается с использованием REST, я проверил, вижу ли я эти данные в трассировке. И эта полезная нагрузка показана, поэтому не должно быть проблем с тем, как я собираю данные:
Я пробовал с Spring Boot 2.0.6 и 2.1.0, тот же эффект. Из того, что я могу сказать, что-то мешает службе А правильно отправлять данные.