我正在使用restTemplate(在端口8080上运行)将数据发布到以下URL:“ http:// localhost:8013 / v1 / ecrion / HELLO_WORLD”,如下所示
public ImageDescriptor generateImage(String payLoad, String templateName, String slogPrefix) {
try {
ImageDescriptor descriptor = new ImageDescriptor();
String myEcrionUrl = "http://localhost:8013/v1/ecrion/HELLO_WORLD";
// String ecrionURL = myEcrionUrl.concat(Constant.F_SLASH).concat(templateName);
log.info("payload" + payLoad);
ResponseEntity<Resource> responseEntity = restTemplate.exchange(
myEcrionUrl,
HttpMethod.POST,
ncbiService.getStringHttpEntityWithPayload(payLoad),
Resource.class);
log.info(String.format("%s generateImage Result: [%s] ", slogPrefix, responseEntity.getBody().getInputStream()));
descriptor.setInputStream(Objects.requireNonNull(responseEntity.getBody()).getInputStream());
convert(responseEntity.getBody().getInputStream(), "sherrr.pdf");
log.info("file is:"+ convert(responseEntity.getBody().getInputStream(), "sherrr.pdf"));
return descriptor;
} catch (IOException e) {
e.printStackTrace();
log.error("Error: " + slogPrefix + " generate image failed " + e.getMessage());
throw new RuntimeException(e);
}
}
“ http:// localhost:8013 / v1 / ecrion / HELLO_WORLD”是我尝试访问的以下方法的URL。
@PostMapping(path = "{documentType}", consumes = "application/json", produces = "application/json")
public ResponseEntity<InputStreamResource> createDocument(@PathVariable DocType documentType,
@RequestBody String payload) throws Exception {
InputStream inputStream = null;
try {
LOGGER.info(String.format("Document Type: ", documentType.toString()));
LOGGER.info(String.format("PayLoad : %s", payload));
inputStream = fopService.doFOP(payload, documentType);
InputStreamResource streamResource = new InputStreamResource(inputStream);
return ResponseEntity.ok()
.contentType(MediaType.parseMediaType(MediaType.APPLICATION_PDF_VALUE))
.body(streamResource);
} catch (Exception ex) {
LOGGER.error("Error", ex);
throw new Exception(ex);
}
}