【发布时间】:2018-08-18 02:34:07
【问题描述】:
我正在尝试使用 Apache ServiceMix 6.1.4 中的蓝图路由来执行 XSLT 2.0。 camel-saxon 功能已安装并处于活动状态。 xslt 文件像这样嵌入到蓝图中:
<toD uri="xslt:path_to_xsl?saxon=true"/>
蓝图路由部署没有任何问题,但是一旦交换主体到达 xsl 组件,我就会收到 xalan 错误。 Xalan 显然抱怨无效的 xsl(因为它无法解析 xslt 2.0)。但是,当我明确告诉组件使用撒克逊语时,为什么要使用 xalan?我缺少什么以及如何让 xslt 组件与 saxon 和 xslt 2.0 一起使用?
【问题讨论】:
-
尝试使用更新版本的 ServiceMix / Karaf / 以及 OSGi 之外的版本。也尝试重新启动 ServiceMix,它可能是关于类加载问题,或刷新包等。
-
您可能还想尝试添加
transformerFactoryClass=net.sf.saxon.TransformationFactory而不是saxon=true。 -
我已经尝试了所有这些。重新启动无济于事,刷新捆绑包和清除缓存也无济于事。 ServiceMix 7.0.x 和 7.1.x 的行为方式相同。添加
transformerFactoryClass=net.sf.saxon.TransformationFactory而不是saxon=true也无济于事。 -
也没有关于 xslt 没有找到 saxon 的错误消息。似乎只是忽略了使用它的选项。
-
不知道这是否相关,但您是否尝试过使用
.to()而不是.toD()?鉴于您只有一个样式表,您问题中的端点是静态的,因此您不需要.toD()
标签: apache-camel xslt-2.0 saxon apache-servicemix