Red Hat Training

A Red Hat training course is available for Red Hat Fuse

14.5.3. JMS 클라이언트 구성

14.5.3.1. 개요

JMS 소비자 엔드포인트는 사용하는 메시지 유형을 지정합니다. JMS 소비자 끝점은 JMS ByteMessage 또는 JMS TextMessage 를 사용할 수 있습니다.

ByteMessage 를 사용할 때 소비자 엔드포인트는 JMS 메시지 본문에 데이터를 저장하고 데이터를 검색하는 방법으로 byte[] 를 사용합니다. 메시지가 전송될 때, 포맷된 정보를 포함하는 메시지 데이터는 바이트[] 로 패키지되고, 그 메시지가 전선에 배치되기 전에 메시지 본문에 배치된다. 메시지가 수신되면 소비자 끝점은 바이트[] 에 패키징된 것처럼 메시지 본문에 저장된 데이터를 매끄럽게 표시하려고 합니다.

TextMessage 를 사용하는 경우 소비자 엔드포인트는 메시지 본문에서 데이터를 저장하고 검색하는 방법으로 문자열을 사용합니다. 메시지가 전송되면 모든 형식별 정보를 포함하는 메시지 정보가 문자열로 변환되어 JMS 메시지 본문에 배치됩니다. 메시지가 수신되면 소비자 끝점은 JMS 메시지 본문에 저장된 데이터를 문자열로 패딩하려고 합니다.

네이티브 JMS 애플리케이션이 Apache CXF 소비자와 상호 작용할 때 JMS 애플리케이션은 메시지 및 형식 정보를 해석해야 합니다. 예를 들어 Apache CXF 계약이 JMS 끝점에 사용되는 바인딩이 SOAP임을 지정하고 메시지가 TextMessage 로 패키징된 경우 수신 JMS 애플리케이션은 모든 SOAP 봉투 정보가 포함된 텍스트 메시지를 받습니다.

14.5.3.2. 메시지 유형 지정

JMS 소비자 끝점에서 허용하는 메시지 유형은 선택적 jms:client 요소를 사용하여 구성됩니다. jms:client 요소는 WSDL 포트 요소의 자식이며 하나의 특성을 갖습니다.

표 14.3. JMS Client WSDL Extensions

messageType

메시지 데이터를 JMS 메시지로 패키징하는 방법을 지정합니다. text 는 데이터가 TextMessage 로 패키징되도록 지정합니다. 바이너리 는 데이터가 ByteMessage 로 패키징되도록 지정합니다.

14.5.3.3. 예제

예 14.7. “JMS 소비자 엔드 포인트의 WSDL” 는 JMS 소비자 엔드 포인트를 구성하기 위한 WSDL을 보여줍니다.

예 14.7. JMS 소비자 엔드 포인트의 WSDL

<service name="JMSService">
  <port binding="tns:Greeter_SOAPBinding" name="SoapPort">
    <jms:address jndiConnectionFactoryName="ConnectionFactory"
                 jndiDestinationName="dynamicQueues/test.Celtix.jmstransport" >
      <jms:JMSNamingProperty name="java.naming.factory.initial"
                             value="org.activemq.jndi.ActiveMQInitialContextFactory" />
      <jms:JMSNamingProperty name="java.naming.provider.url"
                             value="tcp://localhost:61616" />
    </jms:address>
    <jms:client messageType="binary" />
  </port>
</service>