com.ctc.wstx.exc.WstxParsingException:文本大小限制

时间:2013-06-21 11:21:36

标签: web-services configuration cxf woodstox

我正在向CXF网络服务发送一个大附件,我得到以下例外:

  

引起:javax.xml.bind.UnmarshalException     - 链接异常:   [com.ctc.wstx.exc.WstxParsingException:超出文本大小限制(134217728)    在[row,col {unknown-source}]:[1,134855131]]       at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException(UnmarshallerImpl.java:426)       at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:362)       at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:339)       at org.apache.cxf.jaxb.JAXBEncoderDecoder.doUnmarshal(JAXBEncoderDecoder.java:769)       at 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)       在org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:795)       ......还有25个

问题似乎来自Woodstox图书馆

  

超出文本大小限制(134217728)

有人知道是否可以增加此限制?如果有,该怎么办?

1 个答案:

答案 0 :(得分:4)

如果它来自像这样的woodstox,那么你不会将它作为MTOM附件发送。我的第一个建议是将其翻转为MTOM,以便在XML解析之外进行处理。更有效率,因为我们可以将其保持为输入流或类似物,而不是在内存中。

如果要将其保留在XML中,可以将属性:“org.apache.cxf.stax.maxTextLength”设置为更大的值。请记住,像这样从stax解析器进入的东西在内存中保存为String或byte [],因此会消耗内存。