1 メッセージBean

この例では、Novell exteNd Messaging PlatformメッセージBeanを使用して、メッセージコンシューマを簡単に作成する方法を示します。 MessageBeanクラスはJMQMessageBeanを拡張しますが、該当するコンストラクタを呼び出して、onMessageメソッドを実装する必要があります。接続ファクトリ、接続、セッションおよびコンシューマオブジェクトは、すべてJMQMessageBeanスーパークラスのBeanプロパティとして使用できます。

MessageBeanクラスのソースコードは、次のとおりです。

package bean;
                                                                           
import javax.naming.InitialContext;
                                                                           
import javax.jms.Queue;
import javax.jms.Message;
import javax.jms.TextMessage;
import javax.jms.JMSException;
import javax.jms.QueueConnectionFactory;
                                                                           
import com.sssw.jms.api.JMQMessageBean;
                                                                           
public class MessageBean extends JMQMessageBean
{
    public static void main(String[] args) throws Exception
    {
    |   // get the initial context
    |   InitialContext ctx = new InitialContext();
    |                                                                      
    |   // lookup the queue connection factory
    |   QueueConnectionFactory factory = (QueueConnectionFactory) ctx.
    |       lookup("queue/connectionFactory");
    |                                                                      
    |   // lookup the queue object
    |   Queue queue = (Queue) ctx.lookup("queue/queue0");
    |                                                                      
    |   // create bean and enter dispatch wait loop
    |   MessageBean bean = new MessageBean(factory, queue);
    |                                                                      
    |   System.out.println("bean ready to process messages ...");
    |                                                                      
    |   bean.run();
    }
                                                                           
    /**
       Simply calling the super class constructor connects this consumer.
       @param factory the queue connection factory
       @param queue the queue object
     */
    public MessageBean(QueueConnectionFactory factory, Queue queue)
        throws JMSException
    {
    |   super(factory, queue);
    }
                                                                           
    /**
       This method is called asynchronously by JMS when a message arrives
       at the queue.
       @param message A JMS message.
     */
    public void onMessage(Message message)
    {
    |   TextMessage msg = (TextMessage) message;
    |   try {
    |   |   System.out.println("received: " + msg.getText());
    |   } catch (JMSException ex) {
    |   |   ex.printStackTrace();
    |   }
    }
}
MessageBeanクラスは、接続ファクトリとキューオブジェクトでスーパークラスのコンストラクタを呼び出します。スーパークラスは、必要な接続、セッション、およびキュー受信者オブジェクトを作成し、このクラスをメッセージリスナとして設定します。そのため、MessageBeanクラスは、onMessageメソッドを実装する必要があります。runメソッドは、簡単に使用して、呼び出し側スレッドを停止できます。

トップに戻る


Copyright © 2000-2003, Novell, Inc.All rights reserved.