377.11. 使用 XSLT 和 Java 版本备注
以下是 Camel 用户 Sameer 的一些观察结果,他与我们共享:
如果有人在 XSLT 端点出现问题时,请查看这些点。
我试图使用 xslt 端点,使用简单的 xsl 从一个 xml 简单的转换至另一个 xml。输出 xml 保持显示(在路由中的 xslt 处理器之后),带有mostermost xml 标签,其中没有其中的内容。
DEBUG 日志中没有显示任何解释。但是,在 TRACE 日志中,我找不到一些错误/警告,表明无法初始化 XMLConverter bean。
在我想到几个小时之后,我必须完成以下操作才能让它正常工作(假设用户出现一些声明会给出一些问题):
-
使用路由
("xslt:my-transformer.xsl?transformerFactory=
中的 TranserFactory 选项,使用tFactory
=tFactory")class="org.apache.xalan.xsltc.trax.trax.TransformerFactoryImpl"
.
- 将 Xalan jar 添加到 my maven pom。
my guess 是 JDK (使用 1.6.0_03)中提供的默认 xml 解析机制在此上下文中无法正常工作,且不会抛出任何错误。当我通过此方法切换到 Xalan 时,它可以正常工作。这不是 Camel 问题,但可能需要提及 xslt 组件页面。
另一个备注,jdk 1.6.0_03 附带了 JAXB 2.0,而 Camel 需要 2.1。种临时解决方案是将 2.1 jar 添加到 jvm 的 jre/lib/endorsed
目录中或由容器指定。
希望这段时间为 Camel riders 节省时间。