Метод 1:
Заголовок Content-Type
равен application-json
. Поэтому Spring попытается построить ваш json
в LinkedHashMap
.
Теперь попробуйте это ...
@PostMapping(path=PathConstants.START_ACTION)
public String start(@PathVariable String processDefinitionId, @RequestBody(required=false) Map<String, Object> bodyObject){
if(MapUtils.isNotEmpty(bodyObject)) {
Map<String,Object> pvar = bodyObject;
}
вместо
@PostMapping(path=PathConstants.START_ACTION)
public String start(@PathVariable String processDefinitionId, @RequestBody(required=false) String params){
if(params!=null) {
Gson gson = new Gson();
Map<String,Object> pvar = gson.fromJson(params, Map.class);
System.out.println(pvar);
}
}
и передать header
content-type
как application/json
. это будет работать ..
Метод 2 ::
Теперь, если вы все еще хотите использовать свой собственный старый метод подписи, как этот ..
@PostMapping(path=PathConstants.START_ACTION)
public String start(@PathVariable String processDefinitionId, @RequestBody(required=false) String params){}
затем header
content-type
как text/plain
. тогда ваш старый метод будет работать также ..