【Java开源代码栏目提醒】:以下是网学会员为您推荐的Java开源代码-TopicSend.java,希望本篇文章对您学习有所帮助。
package jms;
import javax.jms.*;
import javax.naming.*;
import java.util.*;
public class TopicSend {
public static void main(String[] args) throws Exception {
Context ctx = getInitialContext();
TopicConnectionFactory topicConnectionFactory = (TopicConnectionFactory) ctx
.lookup("TopicConnectionFactory");
Topic topic = (Topic) ctx.lookup("topic/testTopic");
// Create and get topicConnection from connection factory.
TopicConnection topicConnection = topicConnectionFactory
.createTopicConnection();
// Create and get topicSession from topicConnectiony.
// false means session is not transacted.
TopicSession topicSession = topicConnection.createTopicSession(false,
Session.AUTO_ACKNOWLEDGE);
// Create and get topicPublisher/text message from topicSession.
TopicPublisher topicPublisher = topicSession.createPublisher(topic);
TextMessage message = topicSession.createTextMessage();
// Send messages.
for (int i = 0; i < 3; i++) {
message.setText("Message " + i + " from Topic");
System.out.println("Publishing message: " + message.getText());
topicPublisher.publish(message);
}
// Send a non-text control message indicating end of
// messages.
topicPublisher.publish(topicSession.createMessage());
// close queueConnection
if (topicConnection != null) {
topicPublisher.close();
topicSession.close();
topicConnection.close();
}
}
private static Context getInitialContext() throws NamingException {
Hashtable environment = new Hashtable();
environment.put(Context.INITIAL_CONTEXT_FACTORY,
"org.jnp.interfaces.NamingContextFactory");
environment.put(Context.URL_PKG_PREFIXES,
"org.jboss.naming:org.jnp.interfaces");
environment.put(Context.PROVIDER_URL, "jnp://localhost:1099");
return new InitialContext(environment);
}
}