[java] JMS를 사용하여 메시지를 받는 방법

JMS(Java Message Service)는 자바 어플리케이션 간에 비동기 메시지 기반 통신을 가능하게 해주는 API입니다. JMS를 사용하여 메시지를 받는 방법을 알아보겠습니다.

1. JMS 연결 설정하기

먼저, JMS 연결을 설정해야 합니다. JMS 연결을 위해서는 JMS Provider(예: Apache ActiveMQ, RabbitMQ)에 대한 정보가 필요합니다. 다음은 JMS Provider에 연결하기 위한 예제 코드입니다.

import javax.jms.*;

public class JMSReceiver {
    private static String url = "tcp://localhost:61616";
    private static String queueName = "myQueue";

    public static void main(String[] args) {
        try {
            // JMS 연결 설정
            ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(url);
            Connection connection = connectionFactory.createConnection();
            connection.start();

            // 세션 생성
            Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);

            // 대상 큐 설정
            Destination destination = session.createQueue(queueName);

            // 메시지 소비자 생성
            MessageConsumer consumer = session.createConsumer(destination);

            // 메시지 수신 대기
            consumer.setMessageListener(new MessageListener() {
                @Override
                public void onMessage(Message message) {
                    try {
                        // 메시지 처리 로직 작성
                        if (message instanceof TextMessage) {
                            TextMessage textMessage = (TextMessage) message;
                            System.out.println("Received message: " + textMessage.getText());
                        }
                    } catch (JMSException e) {
                        e.printStackTrace();
                    }
                }
            });

            // 연결 종료
            // connection.close();

        } catch (JMSException e) {
            e.printStackTrace();
        }
    }
}

2. 메시지 수신 대기하기

위의 예제 코드에서 consumer.setMessageListener 메서드를 사용하여 메시지를 수신 대기하도록 설정합니다. onMessage 메서드는 메시지를 수신하면 호출되며, 메시지를 처리하는 로직을 작성할 수 있습니다. 예제에서는 텍스트 메시지를 받았을 때 메시지를 출력하는 로직을 작성하였습니다.

3. JMS 연결 종료하기

메시지 소비가 완료되면 JMS 연결을 종료해야 합니다. 마지막 주석을 제거한 후 connection.close() 메서드를 호출하여 연결을 종료하세요.

// 연결 종료
connection.close();

이제 JMS를 사용하여 메시지를 받는 방법을 알게 되었습니다. JMS를 사용하면 다른 어플리케이션과의 비동기 통신을 쉽게 구현할 수 있습니다. 자세한 내용은 JMS API 문서를 참조하시기 바랍니다.