JMS API Overview: JMS 1.x and JMS 2.x

Filed Under: JMS

Before going to read this post, please read my previous posts about JMS basics. And also please go through my previous post about “JMS Architecture”.

In this post, we are going to discuss about JMS 1.x and 2.x API details.

JMS API 1.0 Overview

JMS API V.1.0/1.0.1/1.02 is also known as Legacy API. It is not recommended to use this API to implement Messaging system.

JMS API Version 1.0 is divided into the following two categories to deal with available two JMS Messaging Models:

  • P2P Messaging Model API
  • Pub/Sub Messaging Model API

P2P Messaging Model API:

JMS API has provided a set of API with QueueXXX name to support P2P (Point-To-Point) Messaging model because P2P uses Queue as its destination.

  • QueueConnectionFactory
  • QueueConnection
  • QueueSession
  • Queue
  • Message
  • QueueReceiver
  • QueueSender
  • JMSException

Pub/Sub Messaging Model API:

JMS API has provided another set of API with TopicXXX name to support Pub/Sub Messaging model because pub/sub uses Topic as its destination.

  • TopicConnectionFactory
  • TopicConnection
  • TopicSession
  • Topic
  • Message
  • TopicSubscriber
  • TopicPublisher
  • JMSException

As it is deprecated and also not recommended to use in our applications, I am not going to give any code examples for this API.

JMS API 1.1 Overview

JMS V.1.1 API is also known as Classic API.To avoid all these confusions – two different set of APIs, JMS V.1.1 API has introduced only one common API to develop both Messaging models very easily.

  • ConnectionFactory
  • Connection
  • Destination
  • Message
  • MessageConsumer
  • MessageProducer
  • JMSException


JMS API 2.0 Overview

After a decade of JMS V.1.1 version release, JMS API had updated to V.2.0 as part of Java EE 7 release. This new JMS V.2.0 API is also known as Simplified API.

JMS 2.0 has improved previous version to reduce the creation of more objects, to provided new set of methods to ease of development and also to support Java EE new features like Annotations and Generics. It also renamed some interface names for better readability and to avoid confusions.

  • ConnectionFactory
  • JMSContext
  • Destination
  • Message
  • JMSConsumer
  • JMSProducer
  • JMSRuntimeException


JMS API Summary:

Legacy P2P APILegacy Pub-Sub APIClassic APISimplified API

That’s it all about JMS API Overview. We will discuss some more JMS Concepts in my coming posts.

Please drop me a comment if you like my post or have any issues/suggestions.


  1. Roshni says:

    Is there any description of jms 1.0.2?

  2. Dhanraj Popalghat says:

    Really really hats off to sir for such an amazing series of articles

  3. Dhaval says:

    JMS API v2.0 Looks like there is a small mistake in Diagram. JMS Producer sends to destination and JMS Consumer receives from destination.

    1. umasree says:

      Really appreciate the way u have explained the Evolution of JMS ApI.

  4. Vinit says:

    I have been following Journaldev since very long time now and I highly recommend this site to my friends, Ramababu I really appreciate your time and your detailed explanation you give for every topic you blog.

  5. Pradeesh says:


Comments are closed.

Generic selectors
Exact matches only
Search in title
Search in content