Spring WebサービスフレームワークにおけるストリームMTOM Webサービス
質問
私はMTOMと春のWSを使用してサーバからクライアントに大きなファイルを送信したいと思います。私はこれが事のこのタイプのための最善のアプローチではないことを認識し、それが要件です。私は、MTOMが設定していると、それは50メガバイトの周りの小さなファイルのために素晴らしい作品。私は、大きなファイルのためのメモリ不足エラーが発生していますし、別のヒープ領域のサイズを変更することで、私は少し大きめのファイルが、1ギガバイトの近くに何を送信することができます。 1ギガバイトは、このために私のテストケースです。どのように私は、サーバーからクライアントへのMTOMサービスをストリーミングまたはチャンクができますか?私は、Tomcat 6、Java 6のアップデート17を使用していて、春のWSはSaajSoapMessageFactoryと1.5.7ます。
私は、JAX-WSとストリーミングの例を見つけましたが、私は春のWSエンドポイントにこれを組み込むするかどうかはわかりません。
解決
昨日、私は大きなファイルをアップロードすると同じ問題を抱えています。最後に、私は、そのための解決策を見つけることができました。春のWSは、大きなファイルのアップロード中にメモリに代わりのファイルを使用することができますorg.springframework.ws.soap.axiom.AxiomSoapMessageFactory
と呼ばれるカスタマイズされた公理メッセージの工場を持っています。お使いの設定で行う唯一の変更は、カスタムプロパティを持つBeanを定義している。
<bean id="messageFactory" class="org.springframework.ws.soap.axiom.AxiomSoapMessageFactory">
<property name="payloadCaching" value="false" />
<property name="attachmentCaching" value="true" />
<property name="attachmentCacheThreshold" value="1024"/>
</bean>
あなたは、クラスパスで利用可能なこの構成と公理のクラスを持っていたら、、春-WSは自動的に大規模なドキュメントのアップロードをピギーする一時ファイルを使用しています。
所属していません StackOverflow