32.3. Cryostat Cryostat

32.3.1. 매개변수 바인딩 주석

Apache Camel 8080 통합을 사용하여 Java 8080에서 메서드를 호출할 때 @XPath 주석을 사용하여 교환에서 값을 추출하고 메서드 매개 변수에 바인딩할 수 있습니다.

예를 들어 AccountService 오브젝트에서 credit 메서드를 호출하는 다음 경로 조각을 고려하십시오.

from("queue:payments")
    .beanRef("accountService","credit")
    ...

credit 메서드는 매개 변수 바인딩 주석을 사용하여 메시지 본문에서 관련 데이터를 추출하고 다음과 같이 매개 변수에 삽입합니다.

public class AccountService {
    ...
    public void credit(
            @XPath("/transaction/transfer/receiver/text()") String name,
            @XPath("/transaction/transfer/amount/text()") String amount
            )
    {
        ...
    }
    ...
}

자세한 내용은 고객 포털 Apache Camel 개발 가이드 의 Cryostat 통합을 참조하십시오.

32.3.2. 네임스페이스

표 32.1. “@XPath에 대해 사전 정의된 네임스페이스” 은 Cryostat에 대해 사전 정의된 네임스페이스를 표시합니다. @XPath 주석에 표시되는 Cryostat 표현식 에서 이러한 네임스페이스 접두사를 사용할 수 있습니다.

표 32.1. @XPath에 대해 사전 정의된 네임스페이스

32.3.3. 사용자 정의 네임스페이스

@NamespacePrefix 주석을 사용하여 사용자 지정 XML 네임스페이스를 정의할 수 있습니다. @NamespacePrefix 주석을 호출하여 @XPath 주석의 namespace 인수 초기화합니다. 그런 다음 @NamespacePrefix 에서 정의한 네임스페이스를 @XPath 주석의 표현식 값에 사용할 수 있습니다.

예를 들어, 접두사인 ex 를 사용자 지정 네임스페이스인 http://fusesource.com/examples 와 연결하려면 다음과 같이 @XPath 주석을 호출합니다.

public class AccountService {
  ...
  public void credit(
    @XPath(
      value = "/ex:transaction/ex:transfer/ex:receiver/text()",
      namespaces = @NamespacePrefix( prefix = "ex", uri = "http://fusesource.com/examples"
      )
    ) String name,
    @XPath(
      value = "/ex:transaction/ex:transfer/ex:amount/text()",
      namespaces = @NamespacePrefix( prefix = "ex", uri = "http://fusesource.com/examples"
      )
    ) String amount,
  )
  {
    ...
  }
  ...
}