私の問題は次のようなものです: JAX-WS SoapHandler with large messages: OutOfMemoryError and JAXWS Soap Handler Large MTOM Attachments
Metro-Runtime-Configuration である tomcat を使用していますが、ヘッダーを追加しようとするとHandlerChainOutOfMemory例外が発生します。
public boolean handleMessage(SOAPMessageContext smc) {
if (Boolean.TRUE.equals(smc.get(MessageContext.MESSAGE_OUTBOUND_PROPERTY))) {
SOAPMessage sm = smc.getMessage(); // <- OutOfMemory
...
Ahmed は最初のリンクでそれを書いてI was able to write code that handles the raw data stream in 3 out of the 4 cases. Fortunately the three cases included the two we were mostly interested in: to/from the server.いますが、そのためのコード スニペットは提供していません。
私が試したこと:
これは、オーバーライドできなかっOutOfMemoryた JDK7 で発生します。AbstractMessageImpl#readAsSOAPMessageカスタム ブートストラップを使用してそのクラスをオーバーライドすることは可能ですか? そして、どうやってそうするのですか?Integerクラスを「オーバーライド」できましたが、AbstractMessageImpl取得されませんでした。
ランタイムを Apache CXF に変更しても、生成した JAX-WS RI クライアントで機能しませんでした ( Cannot create a secure XMLInputFactory)
別のプロバイダー/ランタイムを使用する別の可能性はありますか? そうでない場合、どうすればJDK7をオーバーライドできますAbstractMessageImpl#readAsSOAPMessageか?
または: MTOM とハンドラー チェーンの順序を構成することは可能ですか? MTOM されたメッセージは OutOfMemory をスローすべきではありません。そうですか?
前もってありがとう