FOP组件似乎没有传播标头。在下面的路由中,标头可用于XSLT组件,它确实将它们传递到另一侧。但是在fop之后,他们都走了。
这是一个错误吗?有人可以提出解决方法吗?
<route>
<from uri="direct:render"/>
<to uri="xslt:file:{{rootDir}}/Report.xsl"/>
<to uri="fop:application/pdf"/>
<log message="Headers after fop ${headers}"/>
</route>
感谢
答案 0 :(得分:0)
好的,我的解决方法如下:
<route>
<from uri="direct:render"/>
<!-- Retain header value in property before it's lost -->
<setProperty propertyName="lostHeader">
<simple>${header.lostHeader}</simple>
</setProperty>
<to uri="xslt:file:{{rootDir}}/Report.xsl"/>
<to uri="fop:application/pdf"/>
<!-- Restore it again -->
<setHeader headerName="lostHeader">
<simple>${property.lostHeader}</simple>
</setHeader>
<log message="Headers after fop ${headers}"/>
<!-- Now it's available again here -->
<to uri="jms:jms/happyQueue"/>
</route>
正如我所说,这是一种解决方法,当然,您必须单独处理所需的任何标题。我可能会在fop组件上记录一个jira bug。