0
残りのWebサービスを呼び出してファイルをアップロードしたいと思います。 このWebサービスには、MultipartFileが必要です。春のMultipartファイルアップロードRestTemplateとJackson
私はこれを行うことができ、ここで読む:だからMultipart File Upload Using Spring Rest Template + Spring Web MVC
を、ここに私のコードは次のとおりです。
public Document uploadDocument(MultipartFile file) {
UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(backendURL + "documents/upload");
URI uri = builder.build().encode().toUri();
LinkedMultiValueMap<String, Object> map = new LinkedMultiValueMap<>();
map.add("file", file);
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.MULTIPART_FORM_DATA);
HttpEntity<LinkedMultiValueMap<String, Object>> requestEntity =
new HttpEntity<LinkedMultiValueMap<String, Object>>(map, headers);
try {
ResponseEntity<Document> responseEntity = restTemplate.exchange(uri, HttpMethod.POST, requestEntity, Document.class);
} catch (Exception e) {
e.getMessage(); // Crash here
}
return document.getBody();
}
ジャクソンはJSONでファイルをシリアル化しようとするが、それは次のエラーで失敗します。
Could not write content: No serializer found for class java.io.FileDescriptor and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS)) (through reference chain: org.springframework.web.multipart.support.StandardMultipartFile["inputStream"]->java.io.FileInputStream["fd"])
ファイルのjsonシリアル化を無効にするにはどうすればよいですか?
http://stackoverflow.com/questions/22630550/tunneling-multipartfileあなたにこれが動作しているようです –
を助けるかもしれない:ここでは
は動作するコードです。ありがとう。 いくつかのテストの後、機能コードの回答を追加します。 – YLombardi