ストリーミング・アタッチメントの使用
Oracle Fusion MiddlewareのWebサービスでは、大規模アタッチメントをストリームとして渡すことができます。アタッチメント全体がメモリー内にある場合と同様にアタッチメントを処理するJAX-RPCのAPIとは異なり、ストリームではプログラミング・モデルをより効率的に使用します。また、ストリームを使用すると、サービスの実行前にアタッチメントをメモリーにロードする必要がないため、パフォーマンスおよびスケーラビリティが向上します。
ストリーム・アタッチメントは、埋込みアタッチメントと同様に、MIMEマルチパートのバイナリ形式に準拠しています。埋込みアタッチメントとは、インラインまたはエンコードのアタッチメントを指します。
ワイヤ上では、ストリーム・アタッチメント付きのメッセージはアタッチメント付きの他のSOAPメッセージと同じです。
次の例に、ストリーム添付付きのサンプル・メッセージを示します。メッセージの最初のパートはSOAPエンベロープ(<SOAP-ENV:Envelope...
)です。2番目のパートがアタッチメント(この例ではmyImage.gif
)です。
MIME-Version: 1.0 Content-Type: Multipart/Related; boundary=MIME_boundary; type=text/xml; Content-Description: This is the optional message description. --MIME_boundary Content-Type: text/xml; charset=UTF-8 Content-Transfer-Encoding: 8bit Content-ID: NotSure/DoesntMatter <?xml version='1.0' ?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Body> . . . <DocumentName>MyImage.gif</DocumentName> . . . </SOAP-ENV:Body> </SOAP-ENV:Envelope> --MIME_boundary Content-Type: image/gif Content-Transfer-Encoding: binary Content-ID: AnythingYoudLike ...binary GIF image... --MIME_boundary--