Jms 使用setProperty变量作为XSL的输入

Jms 使用setProperty变量作为XSL的输入,jms,apache-camel,Jms,Apache Camel,我目前正在使用ApacheCamel路由中的setHeader变量作为XSL文件的输入参数。但是,这不适用于setProperty变量。这在Camel中不受支持吗 谢谢 更新-- 这是我的路线 <camel:route> <camel:from uri="file:/usr/local/jms_support/update"/> <camel:convertBodyTo type="String" />

我目前正在使用ApacheCamel路由中的setHeader变量作为XSL文件的输入参数。但是,这不适用于setProperty变量。这在Camel中不受支持吗

谢谢

更新--

这是我的路线

<camel:route>
          <camel:from uri="file:/usr/local/jms_support/update"/>
          <camel:convertBodyTo type="String" />
          <camel:multicast>
            <camel:pipeline>
              <camel:bean ref="getPidsForUpdate"/>

                    <camel:setProperty propertyName="work_or_image"><camel:constant>image</camel:constant></camel:setProperty>

                    <camel:setProperty propertyName="pid"><camel:constant>1234</camel:constant></camel:setProperty>
                    <camel:setProperty propertyName="work_pid"><camel:constant>1234</camel:constant></camel:setProperty>
                    <camel:setProperty propertyName="bibid"><camel:constant>1234</camel:constant></camel:setProperty>
            </camel:pipeline>
            <camel:pipeline>
              <camel:to uri="xslt:xsl/test.xsl"/>
              <camel:to uri="file:/usr/local/jms_support/update_test"/>
            </camel:pipeline>
          </camel:multicast>
        </camel:route>

形象
1234
1234
1234

您使用哪种驼峰版本

Xstl组件将头和属性设置为参数。您可以在org.apache.camel.builder.xml上启用跟踪日志记录,并查看添加了哪些参数


请参阅底部XsltBuilder和configureTransformer方法的源代码:

我最终将消息的内容存储在一个变量中,并在更改后将消息设置回该内容,如下所示

<!-- store original content in header variable -->
<camel:setHeader headerName="marc"><camel:simple>${body}</camel:simple></camel:setHeader>
<!-- run some logic, output gets saved as another header variable, message as this point is now that output -->
<camel:bean ref="getPidsForUpdate"/>
<camel:setHeader headerName="pids"><camel:simple>${body}</camel:simple></camel:setHeader>

${body}
${body}
..基于该输出设置一组变量,然后

<!-- get original message to run some more logic-->
<camel:setBody><camel:simple>${headers.marc}</camel:simple></camel:setBody>

${headers.marc}

Hi Claus,2.1是驼峰版本。我在一个管道中设置属性,但它们似乎在它下面的管道中不可见。我的理解是,在整个路线上,这些属性都应该是可见的。再次感谢。我将我的Spring DSL代码添加到了我的原始问题中。这些属性似乎应该是xsl中的参数,但它们不是。但是,如果我将它们包括在与XSL相同的管道中,它们就会被删除。谢谢。啊,你做错了。multicase将向两个管道发送一份exchange副本,使它们相互独立。只需删除多播,并在转到xslt端点之前设置属性。谢谢,克劳斯。我需要多播,因为我需要相同的消息发送到每个管道。基本上,需要在第一条管道中设置变量,而第二条管道需要设置变量。不过,它们都需要相同的消息作为输入。也许有一些我不知道的EIP模式可以解决这个问题?谢谢