You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Camel升级后Saxon Xslt处理InputStreamCache遇Unexpected EOF异常

Camel 3.14升级至4.0.2后Saxon XSLT组件异常问题

我们将Camel从3.14版本升级至4.0.2版本后遇到异常:自3.17版本起Camel会自动启用Stream Caches,原Exchange输入类型为byte[],现变为InputStreamCache,使用Saxon Xslt组件转换XML数据时出现报错:
net.sf.saxon.trans.XPathException: Error reported by XML parser: Unexpected EOF in prolog

该报错提示转换时输入为空,但实际上InputStreamCache并非空值。完整堆栈信息如下:

net.sf.saxon.trans.XPathException: Error reported by XML parser: Unexpected EOF in prolog
 at [row,col {unknown-source}]: [1,0]
    at net.sf.saxon.pull.StaxBridge.next(StaxBridge.java:205)
    at net.sf.saxon.pull.PullFilter.next(PullFilter.java:98)
    at net.sf.saxon.pull.PullPushTee.next(PullPushTee.java:73)
    at net.sf.saxon.pull.PullConsumer.consume(PullConsumer.java:42)
    at net.sf.saxon.pull.PullPushCopier.copy(PullPushCopier.java:44)
    at net.sf.saxon.pull.PullSource.deliver(PullSource.java:95)
    at net.sf.saxon.pull.ActiveStAXSource.deliver(ActiveStAXSource.java:61)
    at net.sf.saxon.event.Sender.send(Sender.java:104)
    at net.saxon.Controller.makeSourceTree(Controller.java:1306)
    at net.sf.saxon.s9api.XsltTransformer.transform(XsltTransformer.java:342)
    at net.sf.saxon.jaxp.TransformerImpl.transform(TransformerImpl.java:75)
    at org.apache.camel.component.xslt.XsltBuilder.process(XsltBuilder.java:123)
    at org.apache.camel.support.ProcessorEndpoint.onExchange(ProcessorEndpoint.java:93)
    at org.apache.camel.component.xslt.XsltEndpoint.onExchange(XsltEndpoint.java:120)

设置camelContext.setStreamCaching(false);恢复旧行为后一切正常。我们有以下疑问:

  • 是否遗漏了Camel的相关配置项以解决该问题?
  • 如何准确定位该异常的根本原因?
  • 是否有示例或测试验证Saxon Xslt可与InputStreamCache配合使用?

进一步排查发现,路由中提前执行了String body = exchange.getIn().getBody(String.class);,导致InputStreamCache的底层流位置被移至末尾,后续复制到StaxSource时无数据。使用String inBody = MessageHelper.extractBodyAsString(exchange.getIn());或MessageHelper.resetStreamCache(exchange.getIn());可缓解问题,但不确定这是否为InputStreamCache的预期工作方式,Camel相关文档说明较为简略。

内容的提问来源于stack exchange,提问作者Mathias Olausson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 10:38:24