24장. Object-Graph Navigation Language(OGNL)

24.1. 개요

OGNL은 Java 개체의 속성을 가져오고 설정하기 위한 표현식 언어입니다. 속성 값을 가져오고 설정하는 데 모두 동일한 표현식을 사용합니다. OGNL 지원은 camel-ognl 모듈에 있습니다.

24.2. Camel on EAP 배포

이 구성 요소는 Red Hat JBoss EAP(JBoss Enterprise Application Platform) 컨테이너에 단순화된 배포 모델을 제공하는 EAP의 Camel(Wildfly Camel) 프레임워크에서 지원합니다.

24.3. OGNL 모듈 추가

경로에서 OGNL을 사용하려면 예 24.1. “camel-ognl 종속성 추가” 과 같이 프로젝트에 camel-ognl 에 대한 종속성을 추가해야 합니다.

예 24.1. camel-ognl 종속성 추가

<!-- Maven POM File -->
...
<dependencies>
  ...
  <dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-ognl</artifactId>
    <version>${camel-version}</version>
  </dependency>
  ...
</dependencies>

24.4. 정적 가져오기

애플리케이션 코드에서 ognl() 정적 메서드를 사용하려면 Java 소스 파일에 다음 import 문을 포함합니다.

import static org.apache.camel.language.ognl.OgnlExpression.ognl;

24.5. 기본 제공 변수

표 24.1. “OGNL 변수” OGNL을 사용할 때 액세스할 수 있는 기본 제공 변수를 나열합니다.

표 24.1. OGNL 변수

이름유형설명

org.apache.camel.Exchange

현재 교환

exchange

org.apache.camel.Exchange

현재 교환

예외

Throwable

교환 예외 (있는 경우)

exchangeID

문자열

교환 ID

fault

org.apache.camel.Message

Fault 메시지(있는 경우)

request

org.apache.camel.Message

IN 메시지

응답

org.apache.camel.Message

OUT 메시지

속성

map

교환 속성

property(name)

개체

이름이 지정된 Exchange 속성의 값

property(name, type)

Type

이름이 지정된 Exchange 속성의 형식 값

24.6. 예제

예 24.2. “OGNL을 사용하는 경로” OGNL을 사용하는 경로를 표시합니다.

예 24.2. OGNL을 사용하는 경로

<camelContext>
  <route>
    <from uri="seda:foo"/>
    <filter>
      <language langauge="ognl">request.headers.foo == 'bar'</language>
      <to uri="seda:bar"/>
    </filter>
  </route>
</camelContext>