0

現在、Apache Camel ルートで 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>
4

2 に答える 2

1

Camel のどのバージョンを使用していますか?

Xstl コンポーネントは、ヘッダーとプロパティをパラメーターとして設定します。org.apache.camel.builder.xml で TRACE ロギングを有効にして、追加されているパラメーターを確認できます。

XsltBuilder のソース コードと下部の configureTransformer メソッドを参照してください: https://svn.apache.org/repos/asf/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ xml/XsltBuilder.java

于 2012-12-03T08:01:26.340 に答える
0

メッセージの内容を変数に保存し、変更後にメッセージをその内容に戻すことになりました...

<!-- 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>

....その出力に基づいて一連の変数を設定し、次に

<!-- get original message to run some more logic-->
<camel:setBody><camel:simple>${headers.marc}</camel:simple></camel:setBody>
于 2012-12-05T01:05:35.590 に答える