3

私は次のようなコードを持っています-

        // use streaming to increase index throughput
            .setHeader(SolrConstants.OPERATION,
                    constant(SolrConstants.OPERATION_INSERT_STREAMING))
            // define solr endpoint and options
            .to("solr://"
                    + getSolrEndPoint()
                    + "?defaultMaxConnectionsPerHost=500&streamingThreadCount=500&maxRetries=3")
            .log(LoggingLevel.INFO, "Successfully indexed document id [" +header(BatchHeaders.DOCUMENT_ID) +"]")
            // end this route
            .end();

しかし、私がログに記録しているのは-

severity="INFO " thread="Camel (camel-1) thread #123 - seda://insert" category="route2" Successfully indexed document id [header{DOC_ID}]

実際のヘッダー値(ドキュメントID)を取得していません。
だから私の質問は-ここでJavaDSLのヘッダーにアクセスする方法は?

4

1 に答える 1

5

DSLのログは単純な言語を使用します:http://camel.apache.org/simple

したがって、次のようにする必要があります。

    .log(LoggingLevel.INFO, "Successfully indexed document id [${header." + BatchHeaders.DOCUMENT_ID + "}]")

たとえば、${header.xxx}は実行時に単純な言語によって評価されます。

于 2013-02-27T12:22:24.393 に答える