响应不会从一项服务返回到另一项服务-微服务

时间:2019-03-14 11:00:10

标签: web-services microservices resttemplate spring-restcontroller

我面临一个奇怪的问题,即作为字符串的响应没有从一个服务返回到另一服务。我们创建了一个服务正在调用另一服务的微服务。我可以看到记录在日志中的响应。在该行之后,我立即返回该响应,但其返回为null。 我用相同的代码创建了类似的方法,并且效果很好。我已经放置了用于调用要从中返回响应的服务和服务方法的代码。

控制器:

@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;
}
返回的结果是成功还是失败。 我可以看到在控制器中打印的结果是成功的,但是当返回到客户端时,它将打印为null。我用不同的签名创建了完全相同的方法,该方法将结果作为成功返回。我们在这里使用微服务。

乔丹

0 个答案:

没有答案