0

Spring DSL の Camel ルートを Java DSL の同等のものに変換しようとしています。私はほとんどの翻訳を成功させましたが、どうすればいいのかわからないことがあります: ヘッダーを変更することです。

以下に例を示します。

春のDSL:

<bean id="service" class="org.apache.camel.example.service.Reporting" />
<camelContext xmlns="http://camel.apache.org/schema/spring">
    <route id="mina1">
        <from uri="mina:tcp://localhost:9991" />
        <setHeader headerName="minaServer">
            <constant>localhost:9991</constant>
        </setHeader>
        <bean ref="service" method="updateReport" />
        <to uri="direct:messageSender1" />
    </route>
</camelContext>

JavaDSL:

public void configure() throws Exception {
    from("mina:tcp://localhost:9991")
    .setHeader(Exchange.HTTP_METHOD, constant("localhost:9991"))
    .beanRef("camel_examples.loadbalancer_failover_javadsl.service.Reporting", "updateReport")
    .to("direct:messageSender1");
}

そして最後に、ヘッダーを使用する Bean メソッド:

public Report updateReport(@Body Report report, @Header("minaServer") String name) {

    report.setReply("Report passed by MINA servers running on: " + name);
    return report;
}

さて、Spring DSL を使用した例では、すべて正常に動作します。しかし、Java DSL を使用した例では、ヘッダーを正しく設定できません。それは起こらないだけです。これの理由は行.setHeader(Exchange.HTTP_METHOD, constant("localhost:9991"))、おそらくExchange.HTTP_METHOD部分であることは知っていますが、正直に言うと、そこに何を入れればよいかわかりません。私も試してみましExchange.HTTP_URIたが、結果は同じでした。

私の翻訳のどこが間違っていますか?

4

1 に答える 1