ファイルを REST サービスにアップロードする Java デスクトップ クライアント アプリケーションがあります。
REST サービスへのすべての呼び出しは、Spring RestTemplate クラスを使用して処理されます。
アップロードされるファイルが非常に大きくなる可能性があるため、プログレスバーを実装して機能をキャンセルすることを検討しています。
これを Web に実装する方法を探していましたが、うまくいきませんでした。
私は独自の ResourceHttpMessageConverter を実装し、 writeInternal() メソッドを置き換えようとしましたが、このメソッドは、実際にリクエストを投稿する前に、何らかのバッファリングされた操作中に呼び出されたようです (したがって、送信が行われる前にストリームが一度に読み取られます)。
CommonsClientHttpRequestFactory.createRequest() メソッドをオーバーライドし、特別な writeRequest() メソッドを使用して独自の RequestEntity クラスを実装しようとしましたが、同じ問題が発生します (ストリームは実際に投稿を送信する前にすべて読み取られます)。
私は間違った場所を探していますか?誰かが似たようなことをしましたか。
プログレスバーの実装について私がウェブで読んだ多くのことは、アップロードを見つめてから、別のAJAXリクエストを使用してウェブサーバーに進行状況をポーリングすることについて話していますが、これは奇妙な方法のようです。
ヘルプやヒントは大歓迎です。