2

私は Camel で遊んでいます。簡単なテストケースとして、着信メッセージにヘッダーを追加し、それを JMS キュー (activemq) に保存したいと考えています。これは、REST DSL を使用したコードです。

rest("/query-set")
  .id("queryset-route")
  .get("{id}")
      .route()
          .process((exchange) -> {
              exchange.getIn().setHeader("myHeader", constant(UUID.randomUUID()));
          })
          .setHeader(Exchange.HTTP_RESPONSE_CODE, constant(200))
      .endParent()
      .marshal().json(JsonLibrary.Jackson)
      .to("jms:queue:querysetRequests?exchangePattern=InOnly");

HTTPie (httpie.org) で GET を実行すると、次のようになります。

http -a admin:admin GET http://localhost:8080/camel/query-set/someId?key=value 'Foo:bar'

キュー内のメッセージを調べると、次のことがわかります。

  • {id} は URL から抽出され、JMS プロパティとして表示されます
  • http クエリ パラメータ (key=value) は JMS プロパティとして利用可能
  • カスタム http ヘッダー (Foo: bar) は JMS プロパティとして存在します。
  • 基本認証ヘッダー (admin:admin) は JMS プロパティとして存在します

しかし、値としてランダムな UUID を持つ私のカスタム 'myHeader' は JMS プロパティとして存在しません。

私は何を間違っていますか?

4

1 に答える 1