| Interface | Description | 
|---|---|
| BytesMessage | A  BytesMessageobject is used to send a message containing a stream of uninterpreted bytes. | 
| CompletionListener | A  CompletionListeneris implemented by the application and may be specified when a message is sent
 asynchronously. | 
| Connection | A  Connectionobject is a client's active connection to its Jakarta Messaging provider. | 
| ConnectionConsumer | For application servers,  Connectionobjects provide a special facility for creating aConnectionConsumer(optional). | 
| ConnectionFactory | A  ConnectionFactoryobject encapsulates a set of connection configuration parameters that has been defined by
 an administrator. | 
| ConnectionMetaData | A  ConnectionMetaDataobject provides information describing theConnectionobject. | 
| DeliveryMode | The delivery modes supported by the Jakarta Messaging API are  PERSISTENTandNON_PERSISTENT. | 
| Destination | A  Destinationobject encapsulates a provider-specific address. | 
| ExceptionListener | If a Jakarta Messaging provider detects a serious problem with a  Connectionobject, it informs theConnectionobject'sExceptionListener, if one has been registered. | 
| JMSConsumer | A client using the simplified Jakarta Messaging API introduced for Jakarta Messaging 2.0 uses a  JMSConsumerobject to receive messages
 from a queue or topic. | 
| JMSContext | A  JMSContextis the main interface in the simplified Jakarta Messaging API introduced for Jakarta Messaging 2.0. | 
| JMSProducer | A  JMSProduceris a simple object used to send messages on behalf of aJMSContext. | 
| MapMessage | A  MapMessageobject is used to send a set of name-value pairs. | 
| Message | The  Messageinterface is the root interface of all Jakarta Messaging messages. | 
| MessageConsumer | A client uses a  MessageConsumerobject to receive messages from a destination. | 
| MessageListener | A  MessageListenerobject is used to receive asynchronously delivered messages. | 
| MessageProducer | A client uses a  MessageProducerobject to send messages to a destination. | 
| ObjectMessage | An  ObjectMessageobject is used to send a message that contains a serializable object in the Java programming
 language ("Java object"). | 
| Queue | A  Queueobject encapsulates a provider-specific queue name. | 
| QueueBrowser | A client uses a  QueueBrowserobject to look at messages on a queue without removing them. | 
| QueueConnection | A  QueueConnectionobject is an active connection to a point-to-point Jakarta Messaging provider. | 
| QueueConnectionFactory | A client uses a  QueueConnectionFactoryobject to createQueueConnectionobjects with a point-to-point
 Jakarta Messaging provider. | 
| QueueReceiver | A client uses a  QueueReceiverobject to receive messages that have been delivered to a queue. | 
| QueueSender | A client uses a  QueueSenderobject to send messages to a queue. | 
| QueueSession | A  QueueSessionobject provides methods for creatingQueueReceiver,QueueSender,QueueBrowser, andTemporaryQueueobjects. | 
| ServerSession | A  ServerSessionobject is an application server object that is used by a server to associate a thread with a
 Jakarta Messaging session (optional). | 
| ServerSessionPool | A  ServerSessionPoolobject is an object implemented by an application server to provide a pool ofServerSessionobjects for processing the messages of aConnectionConsumer(optional). | 
| Session | A  Sessionobject is a single-threaded context for producing and consuming messages. | 
| StreamMessage | A  StreamMessageobject is used to send a stream of primitive types in the Java programming language. | 
| TemporaryQueue | A  TemporaryQueueobject is a uniqueQueueobject created for the duration of aConnection. | 
| TemporaryTopic | A  TemporaryTopicobject is a uniqueTopicobject created for the duration of aConnection. | 
| TextMessage | A  TextMessageobject is used to send a message containing ajava.lang.String. | 
| Topic | A  Topicobject encapsulates a provider-specific topic name. | 
| TopicConnection | A  TopicConnectionobject is an active connection to a publish/subscribe Jakarta Messaging provider. | 
| TopicConnectionFactory | A client uses a  TopicConnectionFactoryobject to createTopicConnectionobjects with a
 publish/subscribe Jakarta Messaging provider. | 
| TopicPublisher | A client uses a  TopicPublisherobject to publish messages on a topic. | 
| TopicSession | A  TopicSessionobject provides methods for creatingTopicPublisher,TopicSubscriber, andTemporaryTopicobjects. | 
| TopicSubscriber | A client uses a  TopicSubscriberobject to receive messages that have been published to a topic. | 
| XAConnection | The  XAConnectioninterface extends the capability ofConnectionby providing anXASession(optional). | 
| XAConnectionFactory | The  XAConnectionFactoryinterface is a base interface for theXAQueueConnectionFactoryandXATopicConnectionFactoryinterfaces. | 
| XAJMSContext | The  XAJMSContextinterface extends the capability ofJMSContextby adding access to a Jakarta Messaging provider's
 support for the Java Transaction API (JTA) (optional). | 
| XAQueueConnection | An  XAQueueConnectionprovides the same create options asQueueConnection(optional). | 
| XAQueueConnectionFactory | An  XAQueueConnectionFactoryprovides the same create options as aQueueConnectionFactory(optional). | 
| XAQueueSession | An  XAQueueSessionprovides a regularQueueSession, which can be used to createQueueReceiver,QueueSender, andQueueBrowserobjects (optional). | 
| XASession | The  XASessioninterface extends the capability ofSessionby adding access to a Jakarta Messaging provider's
 support for the Java Transaction API (JTA) (optional). | 
| XATopicConnection | An  XATopicConnectionprovides the same create options asTopicConnection(optional). | 
| XATopicConnectionFactory | An  XATopicConnectionFactoryprovides the same create options as aTopicConnectionFactory(optional). | 
| XATopicSession | An  XATopicSessionprovides a regularTopicSession. | 
| Class | Description | 
|---|---|
| QueueRequestor | The  QueueRequestorhelper class simplifies making service requests. | 
| TopicRequestor | The  TopicRequestorhelper class simplifies making service requests. | 
| Exception | Description | 
|---|---|
| IllegalStateException | 
 This exception is thrown when a method is invoked at an illegal or inappropriate time or if the provider is not in an
 appropriate state for the requested operation. | 
| IllegalStateRuntimeException | This unchecked exception is thrown when a method is invoked at an illegal or inappropriate time or if the provider is
 not in an appropriate state for the requested operation, and the method signature does not permit a
  IllegalStateRuntimeExceptionto be thrown. | 
| InvalidClientIDException | 
 This exception must be thrown when a client attempts to set a connection's client ID to a value that is rejected by a
 provider. | 
| InvalidClientIDRuntimeException | This unchecked exception must be thrown when a client attempts to set a connection's client ID to a value that is
 rejected by a provider, and the method signature does not permit a  InvalidClientIDExceptionto be thrown. | 
| InvalidDestinationException | 
 This exception must be thrown when a destination either is not understood by a provider or is no longer valid. | 
| InvalidDestinationRuntimeException | This unchecked exception must be thrown when a destination either is not understood by a provider or is no longer
 valid, and the method signature does not permit a  InvalidDestinationExceptionto be thrown. | 
| InvalidSelectorException | 
 This exception must be thrown when a Jakarta Messaging client attempts to give a provider a message selector with invalid syntax. | 
| InvalidSelectorRuntimeException | This unchecked exception must be thrown when a Jakarta Messaging client attempts to give a provider a message selector with invalid
 syntax, and the method signature does not permit a  InvalidSelectorExceptionto be thrown. | 
| JMSException | 
 This is the root class of all checked exceptions in the Jakarta Messaging API. | 
| JMSRuntimeException | This is the root class of all unchecked exceptions in the Jakarta Messaging API. | 
| JMSSecurityException | This exception must be thrown when a provider rejects a user name/password submitted by a client. | 
| JMSSecurityRuntimeException | This unchecked exception must be thrown when a provider rejects a user name/password submitted by a client, or for
 any case where a security restriction prevents a method from completing, and the method signature does not permit a
  JMSSecurityExceptionto be thrown. | 
| MessageEOFException | This exception must be thrown when an unexpected end of stream has been reached when a  StreamMessageorBytesMessageis being read. | 
| MessageFormatException | This exception must be thrown when a Jakarta Messaging client attempts to use a data type not supported by a message or attempts to
 read data in a message as the wrong type. | 
| MessageFormatRuntimeException | This unchecked exception must be thrown when a Jakarta Messaging application attempts to use a data type not supported by a message
 or attempts to read data in a message as the wrong type, and the method signature does not permit a
  MessageFormatExceptionto be thrown. | 
| MessageNotReadableException | This exception must be thrown when a Jakarta Messaging client attempts to read a write-only message. | 
| MessageNotWriteableException | This exception must be thrown when a Jakarta Messaging client attempts to write to a read-only message. | 
| MessageNotWriteableRuntimeException | This unchecked exception must be thrown when a Jakarta Messaging client attempts to write to a read-only message. | 
| ResourceAllocationException | This exception is thrown when a provider is unable to allocate the resources required by a method. | 
| ResourceAllocationRuntimeException | This unchecked exception is thrown when a provider is unable to allocate the resources required by a method. | 
| TransactionInProgressException | This exception is thrown when an operation is invalid because a transaction is in progress. | 
| TransactionInProgressRuntimeException | This unchecked exception is thrown when an operation is invalid because a transaction is in progress. | 
| TransactionRolledBackException | This exception must be thrown when a call to  Session.commitresults in a rollback of the current transaction. | 
| TransactionRolledBackRuntimeException | This unchecked exception must be thrown when a call to  JMSContext.commitresults in a rollback of the current
 transaction. | 
| Annotation Type | Description | 
|---|---|
| JMSConnectionFactory | This annotation may be used on a field to specify the JNDI lookup name of a  javax.jms.ConnectionFactoryto be
 used when injecting ajavax.jms.JMSContextobject. | 
| JMSConnectionFactoryDefinition | An application may use this annotation to specify a Jakarta Messaging  ConnectionFactoryresource that it requires in its operational environment. | 
| JMSConnectionFactoryDefinitions | Specifies one or more  JMSConnectionFactoryDefinitionannotations. | 
| JMSDestinationDefinition | An application may use this annotation to specify a Jakarta Messaging  Destinationresource that it requires in its operational environment. | 
| JMSDestinationDefinitions | Specifies one or more  JMSDestinationDefinitionannotations. | 
| JMSPasswordCredential | This annotation may be used to specify the userName and password to be used when injecting a
  javax.jms.JMSContextobject. | 
| JMSSessionMode | This annotation may be used to specify the session mode to be used when injecting a  javax.jms.JMSContextobject. |