java left logo
java middle logo
java right logo
 

Home arrow Java EE Tips
 
 
Main Menu
Home
Java Tutorials
Book Reviews
Java SE Tips
Java ME Tips
Java EE Tips
Other API Tips
Java Applications
Java Libraries
Java Games
Java Network
Java Forums
Java Blog




Most Visited Tips
Java SE Tips
Java ME Tips
Java EE Tips
Other API Tips
Java Applications
Java Libraries
Java Games
Book Reviews
Top Rated Tips
Java SE Tips
Java ME Tips
Java EE Tips
Other API Tips
Java Applications
Java Libraries
Java Games
Book Reviews


Statistics
Registered Users: 3940
Java SE Tips: 614
Java ME Tips: 202
Java EE Tips: 183
Other API Tips: 779
Java Applications: 298
Java Libraries: 209
Java Games: 16
Book Reviews:
 
 
 
Sending a publish/subscribe JMS message E-mail
User Rating: / 18
PoorBest 

Enterprise applications can use the JMS to communicate to outside applications or other application servers. EJBs can use JMS to decouple communication with these other systems in an asynchronous manner using a publish/subscribe (pub/sub) pattern. JMS message topics create a one (the sender) to many (the receiver) relationship between messaging partners. In addition, pub/sub topics can be used to store messages even when no entity is ready to retrieve them (referred to as durable subscriptions).

To send a message to a JMS topic, you first need to create a JNDI context and retrieve the JMS connection factory for topics in the JMS environment. Next, you must create a topic connection in order to establish a topic session. Once you have a session, you can find the actual topic to which you want to send a message, and build a publisher object for transmission of your message.

public class MessagePublisher {
    
    ...
            
    private void publish(String subject, String content) {
        
        try {
            
            // first configure and retreive initial context:
            InitialContext context = getInitialContext();
            
            // get the topic factory:
            TopicConnectionFactory factory = (TopicConnectionFactory)
            context.lookup("TopicFactory");
            
            // create a topic connection and session:
            TopicConnection connection = factory.createTopicConnection();
            TopicSession session = connection.createTopicSession(
                    false, Session.AUTO_ACKNOWLEDGE);
            
            // finds the topic and build a publisher:
            Topic topic = (Topiccontext.lookup("SampleTopic");
            TopicPublisher publisher = session.createPublisher(topic);
            
            // finally, create and publish a message:
            MapMessage message = session.createMapMessage();
            
            message.setString("Subject", subject);
            message.setString("Content", content);
            
            publisher.publish(message);
            
        catch (Exception e) {
            e.printStackTrace();
        }
    }
    
    ...
}


 Related Tips

 
< Prev   Next >

Page 1 of 0 ( 0 comments )

You can share your information about this topic using the form below!

Please do not post your questions with this form! Thanks.


Name (required)


E-Mail (required)

Your email will not be displayed on the site - only to our administrator
Homepage(optional)



Comment Enable HTML code : Yes No



 
       
         
     
 
 
 
   
 
 
java bottom left
java bottom middle
java bottom right
RSS 0.91 FeedRSS 1.0 FeedRSS 2.0 FeedATOM FeedOPML Feed

Home - About Us - Privacy Policy
Copyright 2005 - 2008 www.java-tips.org
Java is a trademark of Sun Microsystems, Inc.