【发布时间】:2015-10-22 18:03:26
【问题描述】:
我们有以下设置
- 将消息从一个队列发送到另一个队列。
- 消息将从文本转换为 xml。
使用单个消费者(线程),它工作正常。
当我们有 10 个并发消费者时。我们得到以下异常。仅当我们转储大约 500 条消息然后启动 wso2 ESB 服务器时才会出现此问题。
引起:org.apache.axiom.om.OMException: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,1] 消息:文件过早结束。 在 org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:296) 在 org.apache.axiom.om.impl.llom.OMDocumentImpl.getOMDocumentElement(OMDocumentImpl.java:109) 在 org.apache.axiom.om.impl.builder.StAXOMBuilder.getDocumentElement(StAXOMBuilder.java:570) 在 org.apache.axiom.om.impl.builder.StAXOMBuilder.getDocumentElement(StAXOMBuilder.java:566) 在 pil.pershing.transform.esb.mediator.TransformNewXmlMediator.mediate(TransformNewXmlMediator.java:60) 在 org.apache.synapse.mediators.ext.ClassMediator.mediate(ClassMediator.java:78) ... 11 更多 引起:javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,1] 消息:文件过早结束。 在 com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl.next(XMLStreamReaderImpl.java:588) 在 org.apache.axiom.util.stax.wrapper.XMLStreamReaderWrapper.next(XMLStreamReaderWrapper.java:225) 在 org.apache.axiom.util.stax.dialect.SJSXPStreamReaderWrapper.next(SJSXPStreamReaderWrapper.java:138) 在 org.apache.axiom.om.impl.builder.StAXOMBuilder.parserNext(StAXOMBuilder.java:681) 在 org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:214) ... 16 更多
【问题讨论】:
-
虽然我们使用了 reentrantlock,因为它在您的 Mediator 类中使用。我们仍然面临同样的问题。你能建议任何其他选择吗?