Xslt Camel:TransformerException:Extension function:';{}';当XMLConstants.FEATURE\u SECURE\u处理功能设置为true时无法调用

Xslt Camel:TransformerException:Extension function:';{}';当XMLConstants.FEATURE\u SECURE\u处理功能设置为true时无法调用,xslt,apache-camel,xalan,Xslt,Apache Camel,Xalan,我有一个使用一些xalan日期和时间扩展的样式表。样式表使用Xalan进行了良好的单元测试。然而,当通过骆驼路线时,我得到: javax.xml.transform.TransformerException:当XMLConstants.FEATURE_SECURE_处理功能设置为true时,无法调用扩展函数:{}date time 有什么办法可以解决这个问题吗?您可以尝试关闭安全处理功能。见: 如果您可以访问运行XSLT处理器的Java代码: TransformerFactory.setFeat

我有一个使用一些xalan日期和时间扩展的样式表。样式表使用Xalan进行了良好的单元测试。然而,当通过骆驼路线时,我得到:

javax.xml.transform.TransformerException:当XMLConstants.FEATURE_SECURE_处理功能设置为true时,无法调用扩展函数:{}date time


有什么办法可以解决这个问题吗?

您可以尝试关闭安全处理功能。见:

如果您可以访问运行XSLT处理器的Java代码:

TransformerFactory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, false);

这很好,但不幸的是,camel实例化了它自己的工厂实例。您可以通过配置端点来覆盖默认的
TransformerFactory
,它具有该限制。看见类似于
from(…).to(“xslt:your template.xslt?transformerFactory=bean”)
,其中
bean
是对非安全变压器工厂的引用。您还可以使用它将Xalan替换为Saxon for XSLT 2.0支持。在这里也找到了同样的答案: