Spring Boot RestTemplate复合响应空列表

时间:2018-10-23 12:37:32

标签: java spring-boot microservices resttemplate spring-restcontroller

因此,我正在使用Spring Boot在JAVA中开发一些微服务,并且遇到一些涉及所使用对象的问题。

因此,我有一个数据服务(即数据库接口)和一个调度服务,该服务将由前端调用。 两者都使用它们自己的Response和Request对象,尽管此时它们基本上是相同的。

请忽略下面的代码中没有getter和setter方法。

数据服务

@RestController
@RequestMapping("")
public class DataServiceResource {

  @GetMapping(...)
  public ResponseEntity<JobDetailsResponse> getJobDetailsSingleDate(@PathVariable("singledate") final String date) {

    ...
    return response;

  }

}

JobDetailsResponse

@JsonIgnoreProperties(ignoreUnknown = true)
public class JobDetailsResponse {

    private Object requestSent;
    private List<Job> jobsFound;
    private boolean hasError;

    private String errorMessage;
    private LocalDateTime dataTimestamp;

}

JobDetailsS​​ingleDateRequest

@JsonIgnoreProperties(ignoreUnknown = true)
public class JobDetailsSingleDateRequest {
    private String dateFrom;
}

计划服务

@RestController
@RequestMapping("")
public class SchedulingServiceResource {

  ...

  @Autowired
  private RestTemplate restTemplate;


  @GetMapping(...)
  public ResponseEntity<ReportDetailsResponse> getReportDetailsSingleDate(@PathVariable("singledate") final String singledate) {

    ResponseEntity<ReportDetailsResponse> quoteResponse = this.restTemplate.exchange(DATA_SERVICE_JOB_DETAILS_SINGLE_DATE_URL + singledate, HttpMethod.GET,
                null, new ParameterizedTypeReference<ReportDetailsResponse>() {});

    ...
    return response;

}

ReportDetailsS​​ingleDateRequest

@JsonIgnoreProperties(ignoreUnknown = true)
public class ReportDetailsSingleDateRequest {
    private String dateFrom;
}

ReportDetailsResponse

@JsonIgnoreProperties(ignoreUnknown = true)
public class ReportDetailsResponse {

    private Object requestSent;
    private List<Job> jobsFound;
    private boolean hasError;

    private String errorMessage;
    private LocalDateTime dataTimestamp;

}

因此,当我通过quoteResponse.getBody().getJobsFound()方法检查从数据服务中获取的数据时,我的作业列表为空。 我读到,如果对象在定义上相等,spring将使用反射来传递值,但就我而言,它不会起作用。

是否有一种无需在调度服务中添加数据服务依赖项即可使用微服务的方法?

很长的帖子,很抱歉,但是到目前为止,我还没有找到适合我的案例的例子。我发现的所有示例都与List一起使用,以作为微服务的返回。

谢谢。

0 个答案:

没有答案