42.4.3. JMS 속성 설정


초록

소비자 끝점에서 요청 컨텍스트를 사용하여 여러 JMS 메시지 헤더 속성 및 소비자 끝점의 제한 값을 설정할 수 있습니다. 이러한 속성은 단일 호출에 유효합니다. 서비스 프록시에서 작업을 호출할 때마다 다시 설정해야 합니다.

서비스에 헤더 속성을 설정할 수 없습니다.

42.4.3.1. JMS 헤더 속성

표 42.4. “settable JMS Header Properties” 소비자 엔드포인트의 요청 컨텍스트를 사용하여 설정할 수 있는 JMS 헤더의 속성을 나열합니다.

표 42.4. settable JMS Header Properties
속성 이름속성 유형setter Method

ID 상관 관계

string

setJMSCorralationID()

전송 모드

int

setJMSDeliveryMode()

우선 순위

int

setJMSPriority()

라이브 시간

long

setTimeToLive()

이러한 속성을 설정하려면 다음을 수행합니다.

  1. org.apache.cxf.transports.jms.context.JMSMessageHeadersType 오브젝트를 생성합니다.
  2. 표 42.4. “settable JMS Header Properties” 에 설명된 적절한 설정 방법을 사용하여 설정할 값을 채웁니다.
  3. org.apache.cxf.transports.jms.JMSConstants.JMS_CLIENT_REQUEST_HEADERS를 첫 번째 인수로, 새 JMSMessageHeadersType 오브젝트를 두 번째 인수로 호출하여 요청 컨텍스트의 put() 메서드를 요청 컨텍스트로 설정합니다.

42.4.3.2. 선택적 JMS 헤더 속성

선택적 속성을 JMS 헤더로 설정할 수도 있습니다. 선택적 JMS 헤더 속성은 다른 JMS 헤더 속성을 설정하는 데 사용되는 JMSMessageHeadersType 오브젝트에 저장됩니다. 이러한 개체는 org.apache.cxf.transports.jms.context.JMSPropertyType 개체가 포함된 List 오브젝트로 저장됩니다. JMS 헤더에 선택적 속성을 추가하려면 다음을 수행합니다.

  1. JMSPropertyType 오브젝트를 생성합니다.
  2. setName() 을 사용하여 속성의 이름을 설정합니다.
  3. setValue() 를 사용하여 속성의 값 필드를 설정합니다.
  4. JMSMessageHeadersType.getProperty().add(JMSPropertyType) 를 사용하여 JMS 메시지 헤더에 속성을 추가합니다.
  5. 모든 속성이 메시지 헤더에 추가될 때까지 절차를 반복합니다.

42.4.3.3. client Receive Timeout

JMS 헤더 속성 외에도 소비자 엔드포인트가 시간 초과하기 전에 응답을 대기하는 시간을 설정할 수 있습니다. org.apache.cxf.transports.jms.JMSConstants.JMSConstants.JMSConstants.JMS_CLIENT_RECEIVE_TIMEOUT을 사용하여 요청 컨텍스트의 put() 메서드를 호출하고 소비자가 두 번째 인수로 대기하도록 시간(밀리초)을 나타내는 값을 설정합니다.

42.4.3.4. 예제

예 42.15. “요청 컨텍스트를 사용하여 JMS 속성 설정” 요청 컨텍스트를 사용하여 일부 JMS 속성을 설정하는 코드를 표시합니다.

예 42.15. 요청 컨텍스트를 사용하여 JMS 속성 설정

import org.apache.cxf.transports.jms.context.*;
 // Proxy greeter initialized previously
InvocationHandler handler = Proxy.getInvocationHandler(greeter);

BindingProvider bp= null;
if (handler instanceof BindingProvider)
{
  bp = (BindingProvider)handler;
  Map<String, Object> requestContext = bp.getRequestContext();

  JMSMessageHeadersType requestHdr = new JMSMessageHeadersType();
  requestHdr.setJMSCorrelationID("WithBob");
  requestHdr.setJMSExpiration(3600000L);


  JMSPropertyType prop = new JMSPropertyType;
  prop.setName("MyProperty");
  prop.setValue("Bluebird");
  requestHdr.getProperty().add(prop);

  requestContext.put(JMSConstants.CLIENT_REQUEST_HEADERS, requestHdr);

  requestContext.put(JMSConstants.CLIENT_RECEIVE_TIMEOUT, new Long(1000));
}

예 42.15. “요청 컨텍스트를 사용하여 JMS 속성 설정” 의 코드는 다음을 수행합니다.

변경하려는 JMS 속성이 있는 프록시의 InvocationHandler 를 가져옵니다.

InvocationHandlerBindingProvider 인지 확인합니다.

반환된 InvocationHandler 개체를 BindingProvider 개체로 캐스팅하여 요청 컨텍스트를 검색합니다. casts the returned InvocationHandler object into a BindingProvider object to retrieve the request context.

요청 컨텍스트를 가져옵니다.

새 메시지 헤더 값을 보유하는 JMSMessageHeadersType 오브젝트를 생성합니다.

Correlation ID를 설정합니다.

만료 속성을 60분으로 설정합니다.

JMSPropertyType 오브젝트를 생성합니다.

선택적 속성의 값을 설정합니다.

메시지 헤더에 선택적 속성을 추가합니다.

JMS 메시지 헤더 값을 요청 컨텍스트로 설정합니다.

클라이언트 수신 시간 초과 속성을 1초로 설정합니다.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.