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
たが、結果は同じでした。
私の翻訳のどこが間違っていますか?