2009-10-01 7 views
7

私はバイナリファイルの内容を返すWebサービスを実装しています。ファイルは約100MBの大きさです。 WebサービスとクライアントはAxis2上に構築されています。Webサービスからバイナリデータの大きなチャンクを返す最良の方法は何ですか?

データを返すメソッドの戻り値の型に最適な選択肢は何ですか?

私はバイト[]を試しましたが、私は常にサーバー側でOutOfMemoryErrorsを取得します。加えて、私はメモリ内にファイル全体の内容を載せても大丈夫です。代わりに私が使うことができるようなストリームがありますか?

答えて

3

記事"Downloading a Binary File from a Web Service using Axis2 and SOAP with Attachments"は、私が探していたソリューションを正確に表しています。大量のデータは、「SOAP with Attachments」(SwA)を使用してWebサービスのSOAP応答に添付ファイルとして追加されます。

私は、InputStreamを提供するjavax.activation.DataSourceを使用できます。メモリ内のファイル全体を保持する必要はありません。

7

データを返す代わりに、一時的なファイルとして保存されたこの大きな結果を指す一時的なURLを返すことはできますか? ファイルを一連の小さな結果として返すことはできますか?

関連する問題