web-dev-qa-db-ja.com

SpringDSLを使用してラクダにヘッダー値を記録するにはどうすればよいですか

これは単純なはずですが、しゃれを許してください。春のDSLルート内のラクダにヘッダーを記録しようとしています。 Java DSL の答えを見てきましたが、SpringDSLでそれを機能させる方法を無駄に探していました。私はもう試した:

 <log message="ftping $simple{header.CamelFileName}"/>

そしてまた:

 <log message="ftping ${header.CamelFileName}"/>

および他のいくつかの順列/バリエーションですが、それらはすべて、そのテキストを逐語的に記録するだけです(つまり、実際のヘッダー名を置き換えません)。

何が欠けていますか?


update:これが私のxmlファイルの大部分です:

<split>
    <simple>${body}</simple>
    <setHeader headerName="CamelFileName">
        <simple>${body.batchNumber}.xml</simple>
    </setHeader>
    <log message="SLH - 5 -- marshalling an EFileBatch to XML" loggingLevel="DEBUG" />
    <marshal>
        <jaxb prettyPrint="true" contextPath="generated.gov.nmcourts.ecitation"
                partClass="generated.gov.nmcourts.ecitation.NMCitationEFileBatch"
                partNamespace="EFileBatch" />
    </marshal>

    <log message="SLH - 6 -- xslt transform to add schema location" loggingLevel="DEBUG" />
    <to uri="{{addSchemaLocationXsltUri}}"/>

    <log message="SLH - 7 -- ftp now initiating" loggingLevel="DEBUG" />
    <log message="ftping ${headers.CamelFileName}"/>

    <to uri="{{ftpOdysseyInputPath}}"/>
    <log message="SLH - 8 -- ftp now complete" loggingLevel="DEBUG" />
</split>
11

しばらく前にこの質問をしたところ、最終的には答えが見つかったので、他の誰かが検索でこのスレッドを見つけた場合に備えて、ここに投稿してください。これは機能します:

<log message="ftping $simple{in.header.CamelFileName}" loggingLevel="DEBUG"/>
17

次のいずれかを試してください。どちらでも機能します。

<log message="ftping ${header[CamelFileName]}"/>
<log message="ftping ${headers.CamelFileName}"/>

$simple{...}構文は、Spring ${...}との競合を回避するためにCamel 2.5で追加されました。古いバージョンを使用している可能性がありますか?

7
Jakub Korab

Java DSL

from("logger")
.log(LoggingLevel.INFO, "${in.headers.CamelFileName}")
.end

LoggingLevelはorg.Apache.camel.LoggingLevelからのものです

1

それが可能かどうかわからない

http://camel.Apache.org/logeip.html

DSLのログとログコンポーネントの違いログDSLははるかに軽量で、Starting todoなどの人間のログをログに記録するためのものです。Simple言語に基づいたメッセージのみをログに記録できます。

一方、ログコンポーネントは、エンドポイントの使用などを含む完全な機能を備えたコンポーネントです。ログコンポーネントは、メッセージ自体をログに記録するためのものであり、ログに記録する対象を制御する多くのURIオプションがあります。

0
Frederic Close