basictopicpublisher.java

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

JAVA
57
字号
package com.wrox.pubsub;

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

public class BasicTopicPublisher
{
    protected TopicConnection _connection =null;
    protected TopicSession _session = null;
    protected TopicPublisher _publisher = null;
    protected String _jndiTopicName = null;
    protected String _jndiTopicFactoryName = null;
    public BasicTopicPublisher (String jndiTopicFactoryName , String jndiTopicName ) throws NamingException, JMSException
    {
        super();
        _jndiTopicName = jndiTopicName;
        _jndiTopicFactoryName = jndiTopicFactoryName;
        initialize ();
    }
    protected void initialize () throws NamingException, JMSException
    {
        Context ctx = new InitialContext ();
        TopicConnectionFactory topicConnectionFactory =
        (TopicConnectionFactory) ctx.lookup (_jndiTopicFactoryName);
        Topic topic = (Topic) ctx.lookup (_jndiTopicName);
        _connection = topicConnectionFactory.createTopicConnection ();
        _session = _connection.createTopicSession (false, Session.AUTO_ACKNOWLEDGE);
        _publisher = _session.createPublisher (topic);
    }
    public void publishMessage (String theMessageBody) throws JMSException
    {
        if(_publisher != null)
        {
            _connection.start ();
            Message message = _session.createTextMessage (theMessageBody);
            _publisher.publish (message);
        }
    }
    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 + -
显示快捷键?