JMSConsumer object to receive messages from a queue or topic. A
JMSConsumer object may be created either created by passing a
Queue or Topic object to one of the createConsumer
methods on a JMSContext. or by passing a Topic object to one
of the createSharedConsumer or createDurableConsumer methods
on a JMSContext.
A JMSConsumer can be created with a message selector. A message
selector allows the client to restrict the messages delivered to the
JMSConsumer to those that match the selector.
A client may either synchronously receive a JMSConsumer's messages or
have the JMSConsumer asynchronously deliver them as they arrive.
For synchronous receipt, a client can request the next message from a
JMSConsumer using one of its receive methods. There are
several variations of receive that allow a client to poll or wait for
the next message.
For asynchronous delivery, a client can register a MessageListener
object with a JMSConsumer. As messages arrive at the
JMSConsumer, it delivers them by calling the MessageListener
's onMessage method.
It is a client programming error for a MessageListener to throw an
exception.
javax.jms.JMSContext
| Modifier and Type | Method and Description |
|---|---|
| public void | |
| public MessageListener | Returns: theJMSConsumer's MessageListener, or null if one was not setGets the |
| public String | Returns: thisJMSConsumer's message selector, or null if no
message selector exists for the JMSConsumer (that is, if
the message selector was not set or was set to null or the
empty string)Gets this |
| public Message | Returns: the next message produced for thisJMSConsumer, or
null if this JMSConsumer is concurrently closedReceives the next message produced for this |
| public Message | Returns: the next message produced for thisJMSConsumer, or
null if the timeout expires or this JMSConsumer is concurrently
closedthe timeout value (in milliseconds) timeout)Receives the next message that arrives within the specified timeout interval. |
| public <T> T | Returns: the body of the next message produced for thisJMSConsumer, or null if this JMSConsumer is
concurrently closedThe type to which the body of the next message should be
assigned. c)If the next message is expected to be a TextMessage
then this should be set to String.class or another
class to which a String is assignable.If the next message is expected to be a ObjectMessage
then this should be set to java.io.Serializable.class
or another class to which the body is assignable. If the next message is expected to be a MapMessage
then this should be set to java.util.Map.class
(or java.lang.Object.class).If the next message is expected to be a BytesMessage
then this should be set to byte[].class
(or java.lang.Object.class).Receives the next message produced for this |
| public <T> T | Returns: the body of the next message produced for thisJMSConsumer,
or null if the timeout expires or this JMSConsumer is concurrently closedThe type to which the body of the next message should be
assigned. c, long timeout)If the next message is expected to be a TextMessage
then this should be set to String.class or another
class to which a String is assignable.If the next message is expected to be a ObjectMessage
then this should be set to java.io.Serializable.class
or another class to which the body is assignable. If the next message is expected to be a MapMessage
then this should be set to java.util.Map.class
(or java.lang.Object.class).If the next message is expected to be a BytesMessage
then this should be set to byte[].class
(or java.lang.Object.class).Receives the next message produced for this |
| public <T> T | Returns: the body of the next message produced for thisJMSConsumer,
or null if one is not immediately available or this JMSConsumer is concurrently closedThe type to which the body of the next message should be
assigned. c)If the next message is expected to be a TextMessage
then this should be set to String.class or another
class to which a String is assignable.If the next message is expected to be a ObjectMessage
then this should be set to java.io.Serializable.class
or another class to which the body is assignable. If the next message is expected to be a MapMessage
then this should be set to java.util.Map.class
(or java.lang.Object.class).If the next message is expected to be a BytesMessage
then this should be set to byte[].class
(or java.lang.Object.class).Receives the next message produced for this |
| public Message | Returns: the next message produced for thisJMSConsumer, or
null if one is not availableReceives the next message if one is immediately available. |
| public void | setMessageListener(MessageListener
the listener to which the messages are to be
delivered listener)Sets the |
| close | back to summary |
|---|---|
| public void close() Redeclares java. Closes the
Since a provider may allocate some resources on behalf of a
This call will block until a If this method is called whilst a message listener is in progress in another thread then it will block until the message listener has completed.
This method may be called from a message listener's
This method is the only
| |
| getMessageListener | back to summary |
|---|---|
| public MessageListener getMessageListener() throws JMSRuntimeException Gets the
This method must not be used in a Java EE web or EJB application.
Doing so may cause a
| |
| getMessageSelector | back to summary |
|---|---|
| public String getMessageSelector() Gets this
| |
| receive | back to summary |
|---|---|
| public Message receive() Receives the next message produced for this This call blocks indefinitely until a message is produced
or until this If this
| |
| receive | back to summary |
|---|---|
| public Message receive(long timeout) Receives the next message that arrives within the specified timeout interval. This call blocks until a message arrives, the
timeout expires, or this
| |
| receiveBody | back to summary |
|---|---|
| public <T> T receiveBody(Class<T> c) Receives the next message produced for this
This method does not give access to the message headers or properties
(such as the
This call blocks indefinitely until a message is produced or until this
If this method is called within a transaction, the
The result of this method throwing a
| |
| receiveBody | back to summary |
|---|---|
| public <T> T receiveBody(Class<T> c, long timeout) Receives the next message produced for this
This method does not give access to the message headers or properties
(such as the
This call blocks until a message arrives, the timeout expires, or this
If this method is called within a transaction, the
The result of this method throwing a
| |
| receiveBodyNoWait | back to summary |
|---|---|
| public <T> T receiveBodyNoWait(Class<T> c) Receives the next message produced for this
This method does not give access to the message headers or properties
(such as the If a message is not immediately available null is returned.
If this method is called within a transaction, the
The result of this method throwing a
| |
| receiveNoWait | back to summary |
|---|---|
| public Message receiveNoWait() Receives the next message if one is immediately available.
| |
| setMessageListener | back to summary |
|---|---|
| public void setMessageListener(MessageListener listener) throws JMSRuntimeException Sets the
Setting the
The effect of calling this method
while messages are being consumed by an existing listener
or the
This method must not be used in a Java EE web or EJB application.
Doing so may cause a
| |