42.4. JMS Message Properties 사용


초록

Apache CXF JMS 전송에는 JMS 메시지의 속성을 검사하는 데 사용할 수 있는 컨텍스트 메커니즘이 있습니다. 컨텍스트 메커니즘을 사용하여 JMS 메시지의 속성을 설정할 수도 있습니다.

42.4.1. JMS 메시지 헤더 검사

초록

소비자 및 서비스는 JMS 메시지 헤더 속성에 액세스하기 위해 다양한 컨텍스트 메커니즘을 사용합니다. 그러나 두 메커니즘 모두 헤더 속성을 org.apache.cxf.transports.jms.context.JMSMessageHeadersType 오브젝트로 반환합니다.

42.4.1.1. 서비스에서 JMS 메시지 헤더 가져오기

WebServiceContext 개체에서 JMS 메시지 헤더 속성을 가져오려면 다음을 수행합니다.

  1. “컨텍스트 가져오기” 에 설명된 대로 컨텍스트를 가져옵니다.
  2. org.apache.cxf.transports.jms.JMSConstants.JMS_SERVER_HEADERS 매개 변수와 함께 메시지 컨텍스트의 get() 메서드를 사용하여 메시지 컨텍스트에서 메시지 헤더를 가져옵니다.

예 42.12. “서비스 구현에서 JMS 메시지 헤더 가져오기” 서비스의 메시지 컨텍스트에서 JMS 메시지 헤더를 가져오는 코드를 표시합니다.

예 42.12. 서비스 구현에서 JMS 메시지 헤더 가져오기

import org.apache.cxf.transport.jms.JMSConstants;
import org.apache.cxf.transports.jms.context.JMSMessageHeadersType;

@WebService(serviceName = "HelloWorldService",
                           portName = "HelloWorldPort",
                           endpointInterface = "org.apache.cxf.hello_world_jms.HelloWorldPortType",
                           targetNamespace = "http://cxf.apache.org/hello_world_jms")
  public class GreeterImplTwoWayJMS implements HelloWorldPortType
  {
    @Resource
    protected WebServiceContext wsContext;
    ...

    @WebMethod
    public String greetMe(String me)
    {
      MessageContext mc = wsContext.getMessageContext();
      JMSMessageHeadersType headers = (JMSMessageHeadersType) mc.get(JMSConstants.JMS_SERVER_HEADERS);
       ...
     }
      ...
}

42.4.1.2. 소비자에서 JMS 메시지 헤더 속성 가져오기

메시지가 JMS 전송에서 성공적으로 검색되면 소비자의 응답 컨텍스트를 사용하여 JMS 헤더 속성을 검사할 수 있습니다. 또한 “client Receive Timeout” 에 설명된 대로 시간이 초과되기 전에 클라이언트가 대기하는 시간을 설정하거나 확인할 수 있습니다. 소비자의 응답 컨텍스트에서 JMS 메시지 헤더를 가져오려면 다음을 수행합니다.

  1. “컨텍스트 가져오기” 에 설명된 대로 응답 컨텍스트를 가져옵니다.
  2. org.apache.cxf.transports.jms.JMSConstants.JMS_CLIENT_RESPONSE_HEADERS를 매개 변수로 사용하여 응답 컨텍스트에서 JMS 메시지 헤더 속성을 가져옵니다.

예 42.13. “소비자 응답 헤더에서 JMS 헤더 가져오기” 소비자의 응답 컨텍스트에서 JMS 메시지 헤더 속성을 가져오는 코드를 표시합니다.

예 42.13. 소비자 응답 헤더에서 JMS 헤더 가져오기

import org.apache.cxf.transports.jms.context.*;
// Proxy greeter initialized previously
BindingProvider  bp = (BindingProvider)greeter;
Map<String, Object> responseContext = bp.getResponseContext();
JMSMessageHeadersType responseHdr = (JMSMessageHeadersType)
                           responseContext.get(JMSConstants.JMS_CLIENT_RESPONSE_HEADERS);
...
}

예 42.13. “소비자 응답 헤더에서 JMS 헤더 가져오기” 의 코드는 다음을 수행합니다.

프록시를 BindingProvider로 캐스팅합니다.

응답 컨텍스트를 가져옵니다.

응답 컨텍스트에서 JMS 메시지 헤더를 검색합니다.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.