2013-04-12 38 views
0

FOP组件似乎不会传播标头。在下面的路由中,头文件可用于XSLT组件,并且它通过另一端传递它们。但是在fop之后,他们都走了。Apache Camel 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

OK,我的解决方法如下:

<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错误。

+0

好像是一个bug。请随时登录JIRA票:http://camel.apache.org/support –

+0

我记录了一张票,所以我们会记得修复它:https://issues.apache.org/jira/browse/CAMEL- 6284 –