JavaクライアントからTomcatで実行されているサーブレットにHttp出力ストリームを介して非常に大きなファイル(> 200MB)を送信しようとしています。HTTP出力ストリームを使用して複数のオブジェクトを送信する必要があります
私のプロトコルは現在byte[]
でファイルの内容をパッケージ化し、それはいくつかのメタデータ(ファイル名など)、「標準」キーの下の各パート("FILENAME"
とともにAA Map<String, Object>
を置いている - >"Foo"
、"CONTENTS"
- >byte[]
、 "USERID"
- >1234
など)。 Map
は、URL接続出力ストリーム(urlConnection.getOutputStream()
)に書き込まれます。これは、ファイルの内容が小さい場合(< 25MB)、ファイルサイズが非常に大きい場合にTomcatメモリの問題(OutOfMemoryError
)を実行しているときにうまく動作します。
最初にメタデータMap
を送信した後、ファイルの内容を送信し、最後にファイルのデータのチェックサムを送信すると考えました。受信側サーブレットは入力ストリームからメタデータを読み取り、ファイル全体が終了するまでバイトを読み取り、最後にチェックサムを読み取ります。
接続ヘッダーでメタデータを送信する方が良いでしょうか?もしそうなら、どうですか?最初にソケットの下にメタデータを送信し、その後にファイルの内容を送信すると、これを行うための標準プロトコルがありますか?
私はこれがまさに私が必要と考えるものです。私は調査します。ありがとう。 – Ralph