3

I am facing strange issue where response as string not coming back from one service to another service. we have created microservices where one service is calling another service. i can see response printed in logs . after that line immediately i am returning that response but its coming back as null. I created similar method with same code and it works fine. I have put code for calling service and service method from which i am returning response.

controller:

@RequestMapping(value = "/test/save", method = RequestMethod.POST)
@ResponseBody
public String save(@RequestBody Calculation calculation, 
 HttpServletRequest request) {
    logger.info("In .save");
    String result = "false";
    try {

        result = CalService.save(calculation);
        logger.info("Response from service is :" + result);
    } catch (Exception e) {
        logger.error("Exception occured in save:", e);

    }
    return result;
}  
method call client :

    public String saveCal(Calculation calculation) {
    String result = null;
    try {
        logger.info("In save");
        MultiValueMap<String, String> headers = new LinkedMultiValueMap<String, String>();
        headers.add("REMOTE_USER", "test");
        HttpEntity<Calculation> request = new HttpEntity<Calculation>(Calculation, headers);
        RestTemplate template = new RestTemplate();
        template.getMessageConverters().add(new MappingJackson2HttpMessageConverter());
        result = template.postForObject(url+"/test/save", request, String.class);
    } catch (Exception e) {
        logger.error("Exception occured in SaveMddMd", e);
        result = "fail";
    }
    logger.info("Save"+result);
    return result;
}

result returned is success or failure. I can see result printed in controller as success but when it comes back to client it prints as null. I created exact same method with different signature which returns result as success. we are using microservices here.

Jordan

helvete
  • 2,455
  • 13
  • 33
  • 37
Jordan
  • 193
  • 3
  • 12

0 Answers0