クライアントからWebサービスを介して接続されたサーバーにファイルをアップロードするソリューションを探しています。 クライアントはc#で、Webサービスはjavaで書かれています。 ファイルはかなり大きいかもしれません< 100MB。ファイルをwebserviceにアップロードする(java)
あなたはどのようなアプローチをお勧めしますか?
クライアントからWebサービスを介して接続されたサーバーにファイルをアップロードするソリューションを探しています。 クライアントはc#で、Webサービスはjavaで書かれています。 ファイルはかなり大きいかもしれません< 100MB。ファイルをwebserviceにアップロードする(java)
あなたはどのようなアプローチをお勧めしますか?
Base64でファイルをエンコードし、添付ファイルとして送信します。添付ファイルの内容が途中で変更されないようにする必要がある場合は、MTOMを使用してください。それ以外の場合は、DIMEを使用します。
クライアントとサーバーの両方でエンコーディングを合意し、そのエンコーディングを使用してファイルをシリアライズし、CDATA
タグでラップし、その値をクライアント上のSOAPリクエストのテキストノードに割り当てます。
サーバ上のCDATAタグ間のデータを読み込み、同意したエンコードを使用して逆シリアル化します。必要に応じて使用するバイトストリームがあります。
クライアントが.NETとサーバーJavaの場合、相互運用の問題に注意する必要がありますが、ファイルが大きい場合は、エンコーディングに何らかの種類の圧縮が関係することをお勧めします。サーバ側の場合
、あなたがCommons File Upload
Commons File UploadはHTMLフォームで動作するように設計されており、クライアントとサーバーの両方でHTTPリクエストにアクセスすることに依存しています。通常は共通のWS APIの場合です。 –
で見ている必要があり、このアプローチでは可能性の問題があります:あなたはファイル全体では、Java部からメモリに保持されている必要があり、その後MTOMまたはDIMEを使用していない場合Webサービスコンテナ内でクライアントの数が多すぎるとメモリの問題につながる – massimogentilini