Interstage Application Server/Interstage Web Server J2EE ユーザーズガイド
目次 索引 前ページ次ページ

第6部 JMS編> 第24章 JMSアプリケーションの開発> 24.2 作成方法> 24.2.2 Message Listenerの作成

24.2.2.1 Message Listenerを使用したMessageConsumerの作成

 受信したメッセージを処理するためにMessageListenerオブジェクトを登録します。メッセージが到達するとMessage Listenerが呼出されます。Message Listenerを使用してメッセージを受信する手続き例と処理の流れを以下に説明します。

[Message Listenerを使用したMessageConsumer]

import javax.jms.*;
import javax.naming.*;

public class ConsumerA implements MessageListener,ExceptionListener {                /* 1 */
  public static void main( String[] args ) {
    ...
    Connection connection = null;
    ConsumerA consumerA = new ConsumerA ();                                          /* 2 */
    ...
    try {
        java.util.Hashtable env = new java.util.Hashtable( );
        env.put ( javax.naming.Context.INITIAL_CONTEXT_FACTORY ,
             "com.fujitsu.interstage.j2ee.jndi.InitialContextFactoryForClient" );
        InitialContext initialContext = new InitialContext(env);                     /* 3 */
        ConnectionFactory connectionFactory = (ConnectionFactory)
            initialContext.lookup("java:comp/env/jms/ConnectionFactory");            /* 4 */
        Destination destination = (Destination)
            initialContext.lookup("java:comp/env/jms/Destination");                  /* 5 */
        connection = connectionFactory.createConnection();                           /* 6 */
        connection.setExceptionListener( consumerA ) ;                               /* 7 */
        Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); /* 8 */
        MessageConsumer consumer = session.createConsumer(destination);              /* 9 */
        consumer.setMessageListener(consumerA);                                      /* 10 */
        connection.start();                                                          /* 11 */
        /* 待ち合わせ処理 */
    } catch( Exception e ) {
        ... 
    }
    finally {
        if( null != connection ) {
            try {
                connection.close();                                                  /* 12 */
            }
            catch( Exception e ) {
                ... 
            }
        }
    }
  }

  public void onMessage(Message message) {
    ... 
    try {
    } catch( JMSException e ) {
        ... 
    }
    ... 
  }

  public void onException( JMSException jmsEx ) {
    ... 
  }
}
  1. MessageListenerインタフェースおよびExceptionListenerインタフェースを実装します。
  2. クラスのインスタンスを生成します。
  3. JNDIの開始コンテキストを構築します。
  4. ConnectionFactoryオブジェクトを取得します(JNDI名が“ConnectionFactory”の場合)。
  5. Destinationオブジェクトを取得します(JNDI名が“Destination”の場合)。
  6. Connectionを作成します。
  7. ExceptionListenerオブジェクトを登録します。
  8. Sessionを作成します。
  9. MessageConsumerを作成します。
  10. MessageListenerオブジェクトを登録します。
  11. 接続によるメッセージの配信を開始します。
  12. Connectionをクローズします。


 JNDIの開始コンテキスト構築時の環境プロパティの指定については、“J2EEアプリケーションクライアント”を参照してください。


目次 索引 前ページ次ページ

Copyright 2008 FUJITSU LIMITED