다음과 같은 문제점이 있습니다. 파일에서 웹 서비스로 만든 byte []를 전달할 수 없습니다. 내 클라이언트 코드를 실행할 때 서버 로그는 pdfFile 바이트 []에 대해 nullpointer를 던집니다. 여기서 도와주세요.바이트 []를 나머지 웹 서비스의 입력으로
서버 측 :
@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