私の問題は次のようなものです: JAX-WS SoapHandler with large messages: OutOfMemoryError and JAXWS Soap Handler Large MTOM Attachments
Metro-Runtime-Configuration である tomcat を使用していますが、ヘッダーを追加しようとするとHandlerChain
OutOfMemory
例外が発生します。
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 をスローすべきではありません。そうですか?
前もってありがとう