Spring WebサービスフレームワークにおけるストリームMTOM Webサービス

StackOverflow https://stackoverflow.com/questions/1842843

  •  12-09-2019
  •  | 
  •  

質問

私はMTOMと春のWSを使用してサーバからクライアントに大きなファイルを送信したいと思います。私はこれが事のこのタイプのための最善のアプローチではないことを認識し、それが要件です。私は、MTOMが設定していると、それは50メガバイトの周りの小さなファイルのために素晴らしい作品。私は、大きなファイルのためのメモリ不足エラーが発生していますし、別のヒープ領域のサイズを変更することで、私は少し大きめのファイルが、1ギガバイトの近くに何を送信することができます。 1ギガバイトは、このために私のテストケースです。どのように私は、サーバーからクライアントへのMTOMサービスをストリーミングまたはチャンクができますか?私は、Tomcat 6、Java 6のアップデート17を使用していて、春のWSはSaajSoapMessageFactoryと1.5.7ます。

私は、JAX-WSとストリーミングの例を見つけましたが、私は春のWSエンドポイントにこれを組み込むするかどうかはわかりません。

MTOM / XOPを使用したバイナリデータ転送の最適化

役に立ちましたか?

解決

昨日、私は大きなファイルをアップロードすると同じ問題を抱えています。最後に、私は、そのための解決策を見つけることができました。春の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は自動的に大規模なドキュメントのアップロードをピギーする一時ファイルを使用しています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top