に次のような問題があります。私は、ファイルから作成されたバイト[]をWebサービスに渡すことはできません。クライアントコードを実行すると、サーバーログはpdfFileバイト[]のnullpointerを投げます。ここで助けてください。バイト[]を残りのWebサービスの入力として
サーバー側:
@RequestMapping(value = "/uploadForMarkPDF", method = RequestMethod.POST, consumes = { "application/octet-stream" })
public ResponseEntity<byte[]> pdfMark(@RequestParam(value = "pdfFile", required = false) byte[] pdfFile) {
try {
log.info("inside pdf Mark");
log.info("passed in file size:"+pdfFile.length);
.
.
.
クライアント側:
CloseableHttpClient httpclient = null;
byte[] data = null;
final String uri = "http://localhost:8080/legacyRest/uploadForMarkPDF";
File pdfFile = new File("C:\\watermarktest\\form.pdf");
Path fileLocation = Paths.get("C:\\watermarktest\\form.pdf");
HttpPost post = new HttpPost(uri);
post.addHeader("Content-Type", "application/octet-stream; boundary=\"---Content Boundary\"");
try {
data = Files.readAllBytes(fileLocation);
} catch (IOException ex) {
}
InputStream is = new ByteArrayInputStream(data);
MultipartEntityBuilder multipartEntityBuilder = MultipartEntityBuilder.create();
multipartEntityBuilder.addBinaryBody("pdfFile", data, ContentType.create("application/octet-stream"),
"pdfFile");
multipartEntityBuilder.setBoundary("---Content Boundary");
httpclient = HttpClientBuilder.create().build();
HttpEntity entity = multipartEntityBuilder.build();
post.setEntity(entity);
try {
HttpResponse response = httpclient.execute(post);
System.out.println(response);
HttpEntity responseEntity = response.getEntity();
System.out.println(responseEntity);
InputStream responseStream = responseEntity.getContent();
あなたのmultipartEntityBuilder.build()は何も構築していません。したがって、レスポンスのためにnullのrequestparam – shinjw