basicmessagereceiver.java

来自「21天学通java的示例程序源代码」· Java 代码 · 共 73 行

JAVA
73
字号
import javax.naming.*;
import javax.jms.*;

public class BasicMessageReceiver
{
    
    protected QueueConnection _connection =null;
    protected QueueSession _session = null;
    protected QueueReceiver _receiver = null;
    protected String _jndiQueueName = null;
    protected String _jndiQueueFactoryName = null;

    public BasicMessageReceiver (String jndiQueueFactoryName, String jndiQueueName) throws NamingException, JMSException
    {
        super();
        _jndiQueueName = jndiQueueName;
        _jndiQueueFactoryName = jndiQueueFactoryName;
        initialize ();
    }
    protected void initialize () throws NamingException, JMSException
    {
        Context ctx = new InitialContext ();
        QueueConnectionFactory queueConnectionFactory =
        (QueueConnectionFactory) ctx.lookup (_jndiQueueFactoryName);
        Queue outQueue = (Queue) ctx.lookup (_jndiQueueName);
        _connection = queueConnectionFactory.createQueueConnection ();
        _session = _connection.createQueueSession (true, Session.AUTO_ACKNOWLEDGE);
        _receiver = _session.createReceiver (outQueue);
    }
    public String receiveMessage (long millisecondTimeout) throws JMSException
    {
        String result = null;
        if(_receiver != null)
        {
            _connection.start ();
            if(millisecondTimeout < 0)
            {
                millisecondTimeout = 0;
            }
            Message message = (Message)_receiver.receive (millisecondTimeout);
            if(message != null && message instanceof TextMessage)
            {
                result = ((TextMessage)message).getText ();
               _session.commit();
            }
            else
            {
               _session.rollback ();
            }
        }
        return result;
    }
    public void finalize ()
    {
        try
        {
            cleanup ();
        }
        catch(JMSException jmsEx)
        {
            // ignore this error
        }
        
    }
    public void cleanup () throws JMSException
    {
        if(_connection != null)
        {
            _connection.close ();
        }
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?