Как отправить 3 переменных из одной программы в другую?
Есть 3 переменных:
Отправляю так:
HashMap<String, Object> map = new HashMap<>();
map.put("code1", 15);
map.put("code2", 10);
map.put("json", jsonString);
restTemplate.postForEntity(url, this.getRequest(), responseType, map);
Проблема в том, что на другой стороне все переменные null. Если из map убрать json то значение переменных норм.
@RestController
@RequestMapping("/")
public class CourtController {
@RequestMapping(value = "/set", method = RequestMethod.POST, produces = "application/json")
public ResponseDto setStatement(
@RequestParam(value = "code1", defaultValue = "") Integer code1,
@RequestParam(value = "code2", defaultValue = "") Integer code2,
@RequestParam(value = "json", defaultValue = "") String json) {
***
}
}
Попробуйте принимать не параметрами, а объектом. Что-то вроде:
public ResponseDto setStatement(@RequestBody Map map) { ... }
Мне кажтеся дело в том, что вы передаете данные в виде json - объекта, а принимате в виде параметров. То есть, нарушаете стандарт HTTP. Рекомендую убрать map и гонять данные из сервиса в сервиса в виде некоторого объекта вашего класса. Так будет сохраняться явный контракт между сервисами.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей