2013-04-12 55 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 –