0

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>

谢谢

4

1 回答 1

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

于 2013-04-12T18:57:16.440 回答