5

CXF Web サービスに大きな添付ファイルを送信すると、次の例外が発生します。

原因: javax.xml.bind.UnmarshalException - リンクされた例外: [com.ctc.wstx.exc.WstxParsingException: Text size limit (134217728) exceeded at [row,col {unknown-source}]: [1,134855131] ] com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException(UnmarshallerImpl.java:426) で com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:362) で) com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:339) で org.apache.cxf.jaxb.JAXBEncoderDecoder.doUnmarshal(JAXBEncoderDecoder.java:769) で org.apache. cxf.jaxb.JAXBEncoderDecoder.access$100(JAXBEncoderDecoder.java:94) at org.apache.cxf.jaxb.JAXBEncoderDecoder$1.run(JAXBEncoderDecoder.java:797) at java.security.AccessController.doPrivileged(Native Method) at org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:795) ... 25 もっと見る

この問題は、Woodstox ライブラリから来ているようです。

テキストサイズの制限 (134217728) を超えました

この制限を引き上げることが可能かどうか誰かが知っていますか? はいの場合、どうすればよいですか?

4

1 に答える 1

6

そのように woodstox から送信されている場合は、MTOM 添付ファイルとして送信していません。私の最初の提案は、MTOM に切り替えて、XML 解析の外部で処理できるようにすることです。入力ストリームなどとして保持でき、メモリに保持できないため、はるかに効率的です。

XML に保持したい場合は、プロパティ "org.apache.cxf.stax.maxTextLength" をより大きな値に設定できます。このようにstaxパーサーから入ってくるものは、Stringまたはbyte []のいずれかとしてメモリに保持されるため、メモリを消費することに注意してください。

于 2013-06-21T14:47:27.530 に答える