0

私は以下のようなものを達成したいと思います:

from("direct:dataload")                 
                .beanRef("headerUpdater")
                .log("Log: " + simple("${in.header.contentType}").getText())                    
                //.unmarshal().beanio(simple("${in.header.contentType}").getText(), "content")
                .unmarshal(new BeanIODataFormat(
                        "file://C://Users//admr229//Documents//mappings.xml", "clients"))
                .to("bean:headerFooterValidator")
                .split(body())
                .process(dataValidator).choice()
                .when(header("error").isNotNull())
                .to("seda:saveErrorsForReport").otherwise()
                .to("seda:updateLive")
                .end();

作成できない行をコメントアウトしました。beanio を初期化するために、前のエンドポイントの出力から動的な値を渡したいと思いました。私が考えることができるのは、事前定義されたエンドポイントを動的に選択する受信者リストを使用することだけです。私の場合、純粋にテキストである「activemq:queue:test」のようなものとは異なり、そのエンドポイントは beanio で非整列化されるためです。私の質問が明確になったことを願っています。さらに詳細が必要な場合はお知らせください。キャメル2.15.2を使用しています

4

2 に答える 2

2

beanio をデータ形式として指定できるデータ形式コンポーネント [1] を使用し、uri 動的 [2] を構築できます。

[1] - http://camel.apache.org/dataformat-component.html

[2] - http://camel.apache.org/how-to-use-a-dynamic-uri-in-to.html

于 2015-08-21T09:31:22.350 に答える
0

このようなことを行うことができますが、これも動的ではありません。コンテキストを作成する前にプロパティを設定する必要があるためです。

.unmarshal().beanio(マッピング、ストリーム名)

于 2016-05-27T13:40:07.330 に答える