188.12. 헤더를 입력으로 사용

Camel 2.20에서 사용 가능

기본적으로 jsonpath는 메시지 본문을 입력 소스로 사용합니다. 그러나 headerName 옵션을 지정하여 헤더를 입력으로 사용할 수도 있습니다.

예를 들어 이름이 books 라는 헤더에 저장된 json 문서의 책 수를 계산하려면 다음을 수행할 수 있습니다.

from("direct:start")
    .setHeader("numberOfBooks")
        .jsonpath("$..store.book.length()", false, int.class, "books")
    .to("mock:result");

위의 jsonpath 표현식에서 헤더의 이름을 books 로 지정하고, 결과를 int.class 에 의해 정수로 변환하려고 했습니다.

XML DSL의 동일한 예는 다음과 같습니다.

<route>
  <from uri="direct:start"/>
  <setHeader headerName="numberOfBooks">
    <jsonpath headerName="books" resultType="int">$..store.book.length()</jsonpath>
  </transform>
  <to uri="mock:result"/>
</route>