JMS는 6가지의 메시지 인터페이스 유형(하나의 기본 메시지 유형과 5개의 하위 유형)을 정의합니다. 메시지 유형은 메시지 페이로드(payload) 유형에 따라 정의됩니다. 페이로드(payload)는 컨텐츠를 보유하는 메시지의 본문입니다. JMS는 인터페이스만 지정하고 구현은 지정하지 않습니다. 이로써 공용 인터페이스를 사용하는 동안 벤더의 특정 메시지 구현 및 전송이 허용됩니다.
메시지 유형 | 설명 |
Message | 기본 클래스. 이 메시지 유형은 이벤트 알림에 사용되며 페이로드(payload) 유형을 가지고 있지 않습니다. |
BytesMessage | 페이로드(payload)가 바이트 배열로 저장됩니다. 이 메시지 유형은 응용프로그램 고유 형식으로 데이터를 교환하는 데 두 시스템 사이의 전송 방식으로 JMS를 사용할 때 유용합니다. 이 때 JMS 클라이언트는 메시지 페이로드(payload) 유형을 인식하지 못합니다. |
TextMessage | 데이터가 문자열로 저장됩니다. 이 메시지 유형은 간단한 텍스트 메시지 교환과 더 복잡한 문자 데이터(예: XML 문서)에 유용합니다. |
StreamMessage | 스트림 메시지는 일련의 기본 노드 Java 유형의 순서입니다.
메시지 오브젝트는 스트림 내에서 이 기본 노드들의 순서와 유형을 추적합니다. 공식적인 변환 규칙이 적용됩니다. 예를 들어, JMS 응용프로그램이
double 값을 short 값으로 읽으려고 할 경우 예외가 발생합니다.
변환 규칙의 전체 목록은 JMS(Java Message Service) 스펙,
버전 1.1을
참조하십시오. 21ABCDEFGH32.345는
스트림 메시지 페이로드(payload)의 예입니다. 이 예는 다음과 같은 세 필드로 구성됩니다.
데이터 구조가 인식되지 않으면 일반적인 메소드 readObject()를 사용하여 스트림에서 다음 오브젝트를 리턴할 수 있습니다. 데이터의 구조가 인식되면, JMS 클라이언트는 액세스하는 오브젝트 유형에만 해당될 수 있습니다. |
MapMessage | 맵 메시지의 페이로드(payload)는 이름-값 쌍 세트로
저장됩니다. 이름은 문자열로 정의되고 값은 입력됩니다. 맵 메시지는
하나의 메시지에서 다음 메시지로 변경할 수 있는 키 입력 데이터 전달에
유용합니다. NumberOfCopies:5는 맵 메시지 페이로드(payload)의 예입니다. 여기서 NumberOfCopies가 키이고 5는 값입니다. 데이터에는 getMapNames()를 사용하여 액세스할 수 있습니다. 이는 Java Enumeration 오브젝트를 리턴합니다. hasMoreElements()를 사용하여 맵 메시지를 통해 반복하면 맵핑된 이름-값 쌍을 검색할 수 있습니다. |
ObjectMessage | 오브젝트 메시지는 직렬화 가능 Java 오브젝트를 페이로드(payload)로 전달합니다. 이는 Java 오브젝트 교환에 유용합니다. |