Java スプリング コントローラーから Web サービスを呼び出そうとしています。以下はコードです
private void storeImages(MultipartHttpServletRequest multipartRequest) {
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost postRequest = new HttpPost(
"http://localhost:8080/dream/storeimages.htm");
MultipartFile multipartFile1 = multipartRequest.getFile("file1");
MultipartEntity multipartEntity = new MultipartEntity(
HttpMultipartMode.BROWSER_COMPATIBLE);
multipartEntity.addPart("file1",
new ByteArrayBody(multipartFile1.getBytes(),
multipartFile1.getContentType(),
multipartFile1.getOriginalFilename()));
postRequest.setEntity(multipartEntity);
HttpResponse response = httpClient.execute(postRequest);
if (response.getStatusLine().getStatusCode() != 201) {
throw new RuntimeException("Failed : HTTP error code : "
+ response.getStatusLine().getStatusCode());
}
}
上記は部分的なコードです。サーバー側でこれを取得する方法を決定しようとしています。サーバー側には、次のSpringコントローラーコードがあります
@RequestMapping(value = "/storeimages.htm", method = RequestMethod.POST)
public ModelAndView postItem(HttpServletRequest request,
HttpServletResponse response) {
logger.info("Inside /secure/additem/postitem.htm");
try {
// How to get the MultipartEntity object here. More specifically i
// want to get back the Byte array from it
} catch (Exception ex) {
ex.printStackTrace();
}
return new ModelAndView("success");
}
このコードを実行すると、コントロールがサーバー側に移動します。しかし、マルチパーティ オブジェクトからバイト配列を取得する方法に行き詰まっています。
編集された要件: ここに要件があります。ユーザーは Web サイトから画像をアップロードします (これは完了し、機能しています) フォームの送信後にコントロールが Spring コントローラーに移動します (これは完了し、機能しています) Spring コントローラーでは、マルチパートを使用してフォームのコンテンツを取得しています。(これは完了し、機能しています)今、画像バイト配列を画像サーバーに送信するWebサービスを呼び出したいです(これを行う必要があります)画像サーバーで、このWebサービスリクエストを受信したいHTTPServlerRequestからすべてのフィールドを取得します、画像を保存して戻ります(これを行う必要があります)