类 JmsTemplate
- java.lang.Object
- org.springframework.jms.support.JmsAccessor
- org.springframework.jms.support.destination.JmsDestinationAccessor
- org.springframework.jms.core.JmsTemplate
- 所有已实现的接口:
InitializingBean
,JmsOperations
public class JmsTemplate extends JmsDestinationAccessor implements JmsOperations
Helper class that simplifies synchronous JMS access code.If you want to use dynamic destination creation, you must specify the type of JMS destination to create, using the "pubSubDomain" property. For other operations, this is not necessary. Point-to-Point (Queues) is the default domain.
Default settings for JMS Sessions are "not transacted" and "auto-acknowledge". As defined by the Java EE specification, the transaction and acknowledgement parameters are ignored when a JMS Session is created inside an active transaction, no matter if a JTA transaction or a Spring-managed transaction. To configure them for native JMS usage, specify appropriate values for the "sessionTransacted" and "sessionAcknowledgeMode" bean properties.
This template uses a
DynamicDestinationResolver
and aSimpleMessageConverter
as default strategies for resolving a destination name or converting a message, respectively. These defaults can be overridden through the "destinationResolver" and "messageConverter" bean properties.NOTE: The
ConnectionFactory
used with this template should return pooled Connections (or a single shared Connection) as well as pooled Sessions and MessageProducers. Otherwise, performance of ad-hoc JMS operations is going to suffer. The simplest option is to use the Spring-providedSingleConnectionFactory
as a decorator for your targetConnectionFactory
, reusing a single JMS Connection in a thread-safe fashion; this is often good enough for the purpose of sending messages via this template. In a Java EE environment, make sure that theConnectionFactory
is obtained from the application's environment naming context via JNDI; application servers typically expose pooled, transaction-aware factories there.- 从以下版本开始:
- 1.1
- 作者:
- Mark Pollack, Juergen Hoeller, Stephane Nicoll
- 另请参阅:
JmsAccessor.setConnectionFactory(javax.jms.ConnectionFactory)
,JmsDestinationAccessor.setPubSubDomain(boolean)
,JmsDestinationAccessor.setDestinationResolver(org.springframework.jms.support.destination.DestinationResolver)
,setMessageConverter(org.springframework.jms.support.converter.MessageConverter)
,MessageProducer
,MessageConsumer
字段概要
从类继承的字段 org.springframework.jms.support.destination.JmsDestinationAccessor
RECEIVE_TIMEOUT_INDEFINITE_WAIT, RECEIVE_TIMEOUT_NO_WAIT
从类继承的字段 org.springframework.jms.support.JmsAccessor
logger
构造器概要
构造器 构造器 说明 JmsTemplate()
Create a new JmsTemplate for bean-style usage.JmsTemplate(ConnectionFactory connectionFactory)
Create a new JmsTemplate, given a ConnectionFactory.
方法概要
所有方法 实例方法 具体方法 修饰符和类型 方法 说明 <T> T
browse(String queueName, BrowserCallback<T> action)
Browse messages in a JMS queue.<T> T
browse(Queue queue, BrowserCallback<T> action)
Browse messages in a JMS queue.<T> T
browse(BrowserCallback<T> action)
Browse messages in the default JMS queue.<T> T
browseSelected(String queueName, String messageSelector, BrowserCallback<T> action)
Browse selected messages in a JMS queue.<T> T
browseSelected(String messageSelector, BrowserCallback<T> action)
Browse selected messages in a JMS queue.<T> T
browseSelected(Queue queue, String messageSelector, BrowserCallback<T> action)
Browse selected messages in a JMS queue.void
convertAndSend(Object message)
Send the given object to the default destination, converting the object to a JMS message with a configured MessageConverter.void
convertAndSend(Object message, MessagePostProcessor postProcessor)
Send the given object to the default destination, converting the object to a JMS message with a configured MessageConverter.void
convertAndSend(String destinationName, Object message)
Send the given object to the specified destination, converting the object to a JMS message with a configured MessageConverter.void
convertAndSend(String destinationName, Object message, MessagePostProcessor postProcessor)
Send the given object to the specified destination, converting the object to a JMS message with a configured MessageConverter.void
convertAndSend(Destination destination, Object message)
Send the given object to the specified destination, converting the object to a JMS message with a configured MessageConverter.void
convertAndSend(Destination destination, Object message, MessagePostProcessor postProcessor)
Send the given object to the specified destination, converting the object to a JMS message with a configured MessageConverter.protected QueueBrowser
createBrowser(Session session, Queue queue, String messageSelector)
Create a JMS MessageProducer for the given Session and Destination, configuring it to disable message ids and/or timestamps (if necessary).protected MessageConsumer
createConsumer(Session session, Destination destination, String messageSelector)
Create a JMS MessageConsumer for the given Session and Destination.protected MessageProducer
createProducer(Session session, Destination destination)
Create a JMS MessageProducer for the given Session and Destination, configuring it to disable message ids and/or timestamps (if necessary).protected Object
doConvertFromMessage(Message message)
Extract the content from the given JMS message.protected MessageProducer
doCreateProducer(Session session, Destination destination)
Create a raw JMS MessageProducer for the given Session and Destination.protected Message
doReceive(Session session, Destination destination, String messageSelector)
Receive a JMS message.protected Message
doReceive(Session session, MessageConsumer consumer)
Actually receive a JMS message.protected void
doSend(MessageProducer producer, Message message)
Actually send the given JMS message.protected void
doSend(Session session, Destination destination, MessageCreator messageCreator)
Send the given JMS message.protected Message
doSendAndReceive(Session session, Destination destination, MessageCreator messageCreator)
Send a request message to the givenDestination
and block until a reply has been received on a temporary queue created on-the-fly.<T> T
execute(String destinationName, ProducerCallback<T> action)
Send messages to a JMS destination.<T> T
execute(Destination destination, ProducerCallback<T> action)
Send messages to a JMS destination.<T> T
execute(ProducerCallback<T> action)
Send messages to the default JMS destination (or one specified for each send operation).<T> T
execute(SessionCallback<T> action)
Execute the action specified by the given action object within a JMS Session.<T> T
execute(SessionCallback<T> action, boolean startConnection)
Execute the action specified by the given action object within a JMS Session.protected Connection
getConnection(JmsResourceHolder holder)
Fetch an appropriate Connection from the given JmsResourceHolder.Destination
getDefaultDestination()
Return the destination to be used on send/receive operations that do not have a destination parameter.String
getDefaultDestinationName()
Return the destination name to be used on send/receive operations that do not have a destination parameter.long
getDeliveryDelay()
Return the delivery delay to use for send calls (in milliseconds).int
getDeliveryMode()
Return the delivery mode to use when sending a message.MessageConverter
getMessageConverter()
Return the message converter for this template.int
getPriority()
Return the priority of a message when sending.long
getReceiveTimeout()
Return the timeout to use for receive calls (in milliseconds).protected Session
getSession(JmsResourceHolder holder)
Fetch an appropriate Session from the given JmsResourceHolder.long
getTimeToLive()
Return the time-to-live of the message when sending.protected void
initDefaultStrategies()
Initialize the default implementations for the template's strategies: DynamicDestinationResolver and SimpleMessageConverter.boolean
isExplicitQosEnabled()
If "true", then the values of deliveryMode, priority, and timeToLive will be used when sending a message.boolean
isMessageIdEnabled()
Return whether message IDs are enabled.boolean
isMessageTimestampEnabled()
Return whether message timestamps are enabled.boolean
isPubSubNoLocal()
Return whether to inhibit the delivery of messages published by its own connection.protected boolean
isSessionLocallyTransacted(Session session)
Check whether the given Session is locally transacted, that is, whether its transaction is managed by this listener container's Session handling and not by an external transaction coordinator.Message
receive()
Receive a message synchronously from the default destination, but only wait up to a specified time for delivery.Message
receive(String destinationName)
Receive a message synchronously from the specified destination, but only wait up to a specified time for delivery.Message
receive(Destination destination)
Receive a message synchronously from the specified destination, but only wait up to a specified time for delivery.Object
receiveAndConvert()
Receive a message synchronously from the default destination, but only wait up to a specified time for delivery.Object
receiveAndConvert(String destinationName)
Receive a message synchronously from the specified destination, but only wait up to a specified time for delivery.Object
receiveAndConvert(Destination destination)
Receive a message synchronously from the specified destination, but only wait up to a specified time for delivery.Message
receiveSelected(String messageSelector)
Receive a message synchronously from the default destination, but only wait up to a specified time for delivery.Message
receiveSelected(String destinationName, String messageSelector)
Receive a message synchronously from the specified destination, but only wait up to a specified time for delivery.Message
receiveSelected(Destination destination, String messageSelector)
Receive a message synchronously from the specified destination, but only wait up to a specified time for delivery.Object
receiveSelectedAndConvert(String messageSelector)
Receive a message synchronously from the default destination, but only wait up to a specified time for delivery.Object
receiveSelectedAndConvert(String destinationName, String messageSelector)
Receive a message synchronously from the specified destination, but only wait up to a specified time for delivery.Object
receiveSelectedAndConvert(Destination destination, String messageSelector)
Receive a message synchronously from the specified destination, but only wait up to a specified time for delivery.void
send(String destinationName, MessageCreator messageCreator)
Send a message to the specified destination.void
send(Destination destination, MessageCreator messageCreator)
Send a message to the specified destination.void
send(MessageCreator messageCreator)
Send a message to the default destination.Message
sendAndReceive(String destinationName, MessageCreator messageCreator)
Send a message and receive the reply from the specified destination.Message
sendAndReceive(Destination destination, MessageCreator messageCreator)
Send a message and receive the reply from the specified destination.Message
sendAndReceive(MessageCreator messageCreator)
Send a request message and receive the reply from a default destination.void
setDefaultDestination(Destination destination)
Set the destination to be used on send/receive operations that do not have a destination parameter.void
setDefaultDestinationName(String destinationName)
Set the destination name to be used on send/receive operations that do not have a destination parameter.void
setDeliveryDelay(long deliveryDelay)
Set the delivery delay to use for send calls (in milliseconds).void
setDeliveryMode(int deliveryMode)
Set the delivery mode to use when sending a message.void
setDeliveryPersistent(boolean deliveryPersistent)
Set whether message delivery should be persistent or non-persistent, specified as boolean value ("true" or "false").void
setExplicitQosEnabled(boolean explicitQosEnabled)
Set if the QOS values (deliveryMode, priority, timeToLive) should be used for sending a message.void
setMessageConverter(MessageConverter messageConverter)
Set the message converter for this template.void
setMessageIdEnabled(boolean messageIdEnabled)
Set whether message IDs are enabled.void
setMessageTimestampEnabled(boolean messageTimestampEnabled)
Set whether message timestamps are enabled.void
setPriority(int priority)
Set the priority of a message when sending.void
setPubSubNoLocal(boolean pubSubNoLocal)
Set whether to inhibit the delivery of messages published by its own connection.void
setReceiveTimeout(long receiveTimeout)
Set the timeout to use for receive calls (in milliseconds).void
setTimeToLive(long timeToLive)
Set the time-to-live of the message when sending.从类继承的方法 org.springframework.jms.support.destination.JmsDestinationAccessor
getDestinationResolver, isPubSubDomain, receiveFromConsumer, resolveDestinationName, setDestinationResolver, setPubSubDomain
从类继承的方法 org.springframework.jms.support.JmsAccessor
afterPropertiesSet, convertJmsAccessException, createConnection, createSession, getConnectionFactory, getSessionAcknowledgeMode, isClientAcknowledge, isSessionTransacted, setConnectionFactory, setSessionAcknowledgeMode, setSessionAcknowledgeModeName, setSessionTransacted
构造器详细资料
JmsTemplate
public JmsTemplate()
Create a new JmsTemplate for bean-style usage.Note: The ConnectionFactory has to be set before using the instance. This constructor can be used to prepare a JmsTemplate via a BeanFactory, typically setting the ConnectionFactory via setConnectionFactory.
JmsTemplate
public JmsTemplate(ConnectionFactory connectionFactory)
Create a new JmsTemplate, given a ConnectionFactory.- 参数:
connectionFactory
- the ConnectionFactory to obtain Connections from
方法详细资料
initDefaultStrategies
protected void initDefaultStrategies()
Initialize the default implementations for the template's strategies: DynamicDestinationResolver and SimpleMessageConverter.
setDefaultDestination
public void setDefaultDestination(Destination destination)
Set the destination to be used on send/receive operations that do not have a destination parameter.Alternatively, specify a "defaultDestinationName", to be dynamically resolved via the DestinationResolver.
getDefaultDestination
public Destination getDefaultDestination()
Return the destination to be used on send/receive operations that do not have a destination parameter.
setDefaultDestinationName
public void setDefaultDestinationName(String destinationName)
Set the destination name to be used on send/receive operations that do not have a destination parameter. The specified name will be dynamically resolved via the DestinationResolver.Alternatively, specify a JMS Destination object as "defaultDestination".
getDefaultDestinationName
public String getDefaultDestinationName()
Return the destination name to be used on send/receive operations that do not have a destination parameter.
setMessageConverter
public void setMessageConverter(MessageConverter messageConverter)
Set the message converter for this template. Used to resolve Object parameters to convertAndSend methods and Object results from receiveAndConvert methods.The default converter is a SimpleMessageConverter, which is able to handle BytesMessages, TextMessages and ObjectMessages.
getMessageConverter
public MessageConverter getMessageConverter()
Return the message converter for this template.
setMessageIdEnabled
public void setMessageIdEnabled(boolean messageIdEnabled)
Set whether message IDs are enabled. Default is "true".This is only a hint to the JMS producer. See the JMS javadocs for details.
isMessageIdEnabled
public boolean isMessageIdEnabled()
Return whether message IDs are enabled.
setMessageTimestampEnabled
public void setMessageTimestampEnabled(boolean messageTimestampEnabled)
Set whether message timestamps are enabled. Default is "true".This is only a hint to the JMS producer. See the JMS javadocs for details.
isMessageTimestampEnabled
public boolean isMessageTimestampEnabled()
Return whether message timestamps are enabled.
setPubSubNoLocal
public void setPubSubNoLocal(boolean pubSubNoLocal)
Set whether to inhibit the delivery of messages published by its own connection. Default is "false".
isPubSubNoLocal
public boolean isPubSubNoLocal()
Return whether to inhibit the delivery of messages published by its own connection.
setReceiveTimeout
public void setReceiveTimeout(long receiveTimeout)
Set the timeout to use for receive calls (in milliseconds).The default is
JmsDestinationAccessor.RECEIVE_TIMEOUT_INDEFINITE_WAIT
, which indicates a blocking receive without timeout.Specify
JmsDestinationAccessor.RECEIVE_TIMEOUT_NO_WAIT
(or any other negative value) to indicate that a receive operation should check if a message is immediately available without blocking.
getReceiveTimeout
public long getReceiveTimeout()
Return the timeout to use for receive calls (in milliseconds).
setDeliveryDelay
public void setDeliveryDelay(long deliveryDelay)
Set the delivery delay to use for send calls (in milliseconds).The default is -1 (no delivery delay passed on to the broker). Note that this feature requires JMS 2.0.
getDeliveryDelay
public long getDeliveryDelay()
Return the delivery delay to use for send calls (in milliseconds).
setExplicitQosEnabled
public void setExplicitQosEnabled(boolean explicitQosEnabled)
Set if the QOS values (deliveryMode, priority, timeToLive) should be used for sending a message.
isExplicitQosEnabled
public boolean isExplicitQosEnabled()
If "true", then the values of deliveryMode, priority, and timeToLive will be used when sending a message. Otherwise, the default values, that may be set administratively, will be used.- 返回:
- true if overriding default values of QOS parameters (deliveryMode, priority, and timeToLive)
- 另请参阅:
setDeliveryMode(int)
,setPriority(int)
,setTimeToLive(long)
setDeliveryPersistent
public void setDeliveryPersistent(boolean deliveryPersistent)
Set whether message delivery should be persistent or non-persistent, specified as boolean value ("true" or "false"). This will set the delivery mode accordingly, to either "PERSISTENT" (2) or "NON_PERSISTENT" (1).Default is "true" a.k.a. delivery mode "PERSISTENT".
setDeliveryMode
public void setDeliveryMode(int deliveryMode)
Set the delivery mode to use when sending a message. Default is the JMS Message default: "PERSISTENT".Since a default value may be defined administratively, this is only used when "isExplicitQosEnabled" equals "true".
- 参数:
deliveryMode
- the delivery mode to use- 另请参阅:
isExplicitQosEnabled()
,DeliveryMode.PERSISTENT
,DeliveryMode.NON_PERSISTENT
,Message.DEFAULT_DELIVERY_MODE
,MessageProducer.send(javax.jms.Message, int, int, long)
getDeliveryMode
public int getDeliveryMode()
Return the delivery mode to use when sending a message.
setPriority
public void setPriority(int priority)
Set the priority of a message when sending.Since a default value may be defined administratively, this is only used when "isExplicitQosEnabled" equals "true".
getPriority
public int getPriority()
Return the priority of a message when sending.
setTimeToLive
public void setTimeToLive(long timeToLive)
Set the time-to-live of the message when sending.Since a default value may be defined administratively, this is only used when "isExplicitQosEnabled" equals "true".
- 参数:
timeToLive
- the message's lifetime (in milliseconds)- 另请参阅:
isExplicitQosEnabled()
,Message.DEFAULT_TIME_TO_LIVE
,MessageProducer.send(javax.jms.Message, int, int, long)
getTimeToLive
public long getTimeToLive()
Return the time-to-live of the message when sending.
execute
public <T> T execute(SessionCallback<T> action) throws JmsException
从接口复制的说明:JmsOperations
Execute the action specified by the given action object within a JMS Session.- 指定者:
execute
在接口中JmsOperations
- 参数:
action
- callback object that exposes the session- 返回:
- the result object from working with the session
- 抛出:
JmsException
- if there is any problem
execute
public <T> T execute(SessionCallback<T> action, boolean startConnection) throws JmsException
Execute the action specified by the given action object within a JMS Session. Generalized version ofexecute(SessionCallback)
, allowing the JMS Connection to be started on the fly.Use
execute(SessionCallback)
for the general case. Starting the JMS Connection is just necessary for receiving messages, which is preferably achieved through thereceive
methods.- 参数:
action
- callback object that exposes the SessionstartConnection
- whether to start the Connection- 返回:
- the result object from working with the Session
- 抛出:
JmsException
- if there is any problem- 另请参阅:
execute(SessionCallback)
,receive()
execute
public <T> T execute(ProducerCallback<T> action) throws JmsException
从接口复制的说明:JmsOperations
Send messages to the default JMS destination (or one specified for each send operation). The callback gives access to the JMS Session and MessageProducer in order to perform complex send operations.- 指定者:
execute
在接口中JmsOperations
- 参数:
action
- callback object that exposes the session/producer pair- 返回:
- the result object from working with the session
- 抛出:
JmsException
- checked JMSException converted to unchecked
execute
public <T> T execute(Destination destination, ProducerCallback<T> action) throws JmsException
从接口复制的说明:JmsOperations
Send messages to a JMS destination. The callback gives access to the JMS Session and MessageProducer in order to perform complex send operations.- 指定者:
execute
在接口中JmsOperations
- 参数:
destination
- the destination to send messages toaction
- callback object that exposes the session/producer pair- 返回:
- the result object from working with the session
- 抛出:
JmsException
- checked JMSException converted to unchecked
execute
public <T> T execute(String destinationName, ProducerCallback<T> action) throws JmsException
从接口复制的说明:JmsOperations
Send messages to a JMS destination. The callback gives access to the JMS Session and MessageProducer in order to perform complex send operations.- 指定者:
execute
在接口中JmsOperations
- 参数:
destinationName
- the name of the destination to send messages to (to be resolved to an actual destination by a DestinationResolver)action
- callback object that exposes the session/producer pair- 返回:
- the result object from working with the session
- 抛出:
JmsException
- checked JMSException converted to unchecked
send
public void send(MessageCreator messageCreator) throws JmsException
从接口复制的说明:JmsOperations
Send a message to the default destination.This will only work with a default destination specified!
- 指定者:
send
在接口中JmsOperations
- 参数:
messageCreator
- callback to create a message- 抛出:
JmsException
- checked JMSException converted to unchecked
send
public void send(Destination destination, MessageCreator messageCreator) throws JmsException
从接口复制的说明:JmsOperations
Send a message to the specified destination. The MessageCreator callback creates the message given a Session.- 指定者:
send
在接口中JmsOperations
- 参数:
destination
- the destination to send this message tomessageCreator
- callback to create a message- 抛出:
JmsException
- checked JMSException converted to unchecked
send
public void send(String destinationName, MessageCreator messageCreator) throws JmsException
从接口复制的说明:JmsOperations
Send a message to the specified destination. The MessageCreator callback creates the message given a Session.- 指定者:
send
在接口中JmsOperations
- 参数:
destinationName
- the name of the destination to send this message to (to be resolved to an actual destination by a DestinationResolver)messageCreator
- callback to create a message- 抛出:
JmsException
- checked JMSException converted to unchecked
doSend
protected void doSend(Session session, Destination destination, MessageCreator messageCreator) throws JMSException
Send the given JMS message.- 参数:
session
- the JMS Session to operate ondestination
- the JMS Destination to send tomessageCreator
- callback to create a JMS Message- 抛出:
JMSException
- if thrown by JMS API methods
doSend
protected void doSend(MessageProducer producer, Message message) throws JMSException
Actually send the given JMS message.- 参数:
producer
- the JMS MessageProducer to send withmessage
- the JMS Message to send- 抛出:
JMSException
- if thrown by JMS API methods
convertAndSend
public void convertAndSend(Object message) throws JmsException
从接口复制的说明:JmsOperations
Send the given object to the default destination, converting the object to a JMS message with a configured MessageConverter.This will only work with a default destination specified!
- 指定者:
convertAndSend
在接口中JmsOperations
- 参数:
message
- the object to convert to a message- 抛出:
JmsException
- converted checked JMSException to unchecked
convertAndSend
public void convertAndSend(Destination destination, Object message) throws JmsException
从接口复制的说明:JmsOperations
Send the given object to the specified destination, converting the object to a JMS message with a configured MessageConverter.- 指定者:
convertAndSend
在接口中JmsOperations
- 参数:
destination
- the destination to send this message tomessage
- the object to convert to a message- 抛出:
JmsException
- converted checked JMSException to unchecked
convertAndSend
public void convertAndSend(String destinationName, Object message) throws JmsException
从接口复制的说明:JmsOperations
Send the given object to the specified destination, converting the object to a JMS message with a configured MessageConverter.- 指定者:
convertAndSend
在接口中JmsOperations
- 参数:
destinationName
- the name of the destination to send this message to (to be resolved to an actual destination by a DestinationResolver)message
- the object to convert to a message- 抛出:
JmsException
- checked JMSException converted to unchecked
convertAndSend
public void convertAndSend(Object message, MessagePostProcessor postProcessor) throws JmsException
从接口复制的说明:JmsOperations
Send the given object to the default destination, converting the object to a JMS message with a configured MessageConverter. The MessagePostProcessor callback allows for modification of the message after conversion.This will only work with a default destination specified!
- 指定者:
convertAndSend
在接口中JmsOperations
- 参数:
message
- the object to convert to a messagepostProcessor
- the callback to modify the message- 抛出:
JmsException
- checked JMSException converted to unchecked
convertAndSend
public void convertAndSend(Destination destination, Object message, MessagePostProcessor postProcessor) throws JmsException
从接口复制的说明:JmsOperations
Send the given object to the specified destination, converting the object to a JMS message with a configured MessageConverter. The MessagePostProcessor callback allows for modification of the message after conversion.- 指定者:
convertAndSend
在接口中JmsOperations
- 参数:
destination
- the destination to send this message tomessage
- the object to convert to a messagepostProcessor
- the callback to modify the message- 抛出:
JmsException
- checked JMSException converted to unchecked
convertAndSend
public void convertAndSend(String destinationName, Object message, MessagePostProcessor postProcessor) throws JmsException
从接口复制的说明:JmsOperations
Send the given object to the specified destination, converting the object to a JMS message with a configured MessageConverter. The MessagePostProcessor callback allows for modification of the message after conversion.- 指定者:
convertAndSend
在接口中JmsOperations
- 参数:
destinationName
- the name of the destination to send this message to (to be resolved to an actual destination by a DestinationResolver)message
- the object to convert to a message.postProcessor
- the callback to modify the message- 抛出:
JmsException
- checked JMSException converted to unchecked
receive
public Message receive() throws JmsException
从接口复制的说明:JmsOperations
Receive a message synchronously from the default destination, but only wait up to a specified time for delivery.This method should be used carefully, since it will block the thread until the message becomes available or until the timeout value is exceeded.
This will only work with a default destination specified!
- 指定者:
receive
在接口中JmsOperations
- 返回:
- the message received by the consumer, or
null
if the timeout expires - 抛出:
JmsException
- checked JMSException converted to unchecked
receive
public Message receive(Destination destination) throws JmsException
从接口复制的说明:JmsOperations
Receive a message synchronously from the specified destination, but only wait up to a specified time for delivery.This method should be used carefully, since it will block the thread until the message becomes available or until the timeout value is exceeded.
- 指定者:
receive
在接口中JmsOperations
- 参数:
destination
- the destination to receive a message from- 返回:
- the message received by the consumer, or
null
if the timeout expires - 抛出:
JmsException
- checked JMSException converted to unchecked
receive
public Message receive(String destinationName) throws JmsException
从接口复制的说明:JmsOperations
Receive a message synchronously from the specified destination, but only wait up to a specified time for delivery.This method should be used carefully, since it will block the thread until the message becomes available or until the timeout value is exceeded.
- 指定者:
receive
在接口中JmsOperations
- 参数:
destinationName
- the name of the destination to send this message to (to be resolved to an actual destination by a DestinationResolver)- 返回:
- the message received by the consumer, or
null
if the timeout expires - 抛出:
JmsException
- checked JMSException converted to unchecked
receiveSelected
public Message receiveSelected(String messageSelector) throws JmsException
从接口复制的说明:JmsOperations
Receive a message synchronously from the default destination, but only wait up to a specified time for delivery.This method should be used carefully, since it will block the thread until the message becomes available or until the timeout value is exceeded.
This will only work with a default destination specified!
- 指定者:
receiveSelected
在接口中JmsOperations
- 参数:
messageSelector
- the JMS message selector expression (ornull
if none). See the JMS specification for a detailed definition of selector expressions.- 返回:
- the message received by the consumer, or
null
if the timeout expires - 抛出:
JmsException
- checked JMSException converted to unchecked
receiveSelected
public Message receiveSelected(Destination destination, String messageSelector) throws JmsException
从接口复制的说明:JmsOperations
Receive a message synchronously from the specified destination, but only wait up to a specified time for delivery.This method should be used carefully, since it will block the thread until the message becomes available or until the timeout value is exceeded.
- 指定者:
receiveSelected
在接口中JmsOperations
- 参数:
destination
- the destination to receive a message frommessageSelector
- the JMS message selector expression (ornull
if none). See the JMS specification for a detailed definition of selector expressions.- 返回:
- the message received by the consumer, or
null
if the timeout expires - 抛出:
JmsException
- checked JMSException converted to unchecked
receiveSelected
public Message receiveSelected(String destinationName, String messageSelector) throws JmsException
从接口复制的说明:JmsOperations
Receive a message synchronously from the specified destination, but only wait up to a specified time for delivery.This method should be used carefully, since it will block the thread until the message becomes available or until the timeout value is exceeded.
- 指定者:
receiveSelected
在接口中JmsOperations
- 参数:
destinationName
- the name of the destination to send this message to (to be resolved to an actual destination by a DestinationResolver)messageSelector
- the JMS message selector expression (ornull
if none). See the JMS specification for a detailed definition of selector expressions.- 返回:
- the message received by the consumer, or
null
if the timeout expires - 抛出:
JmsException
- checked JMSException converted to unchecked
doReceive
protected Message doReceive(Session session, Destination destination, String messageSelector) throws JMSException
Receive a JMS message.- 参数:
session
- the JMS Session to operate ondestination
- the JMS Destination to receive frommessageSelector
- the message selector for this consumer (can benull
)- 返回:
- the JMS Message received, or
null
if none - 抛出:
JMSException
- if thrown by JMS API methods
doReceive
protected Message doReceive(Session session, MessageConsumer consumer) throws JMSException
Actually receive a JMS message.- 参数:
session
- the JMS Session to operate onconsumer
- the JMS MessageConsumer to receive with- 返回:
- the JMS Message received, or
null
if none - 抛出:
JMSException
- if thrown by JMS API methods
receiveAndConvert
public Object receiveAndConvert() throws JmsException
从接口复制的说明:JmsOperations
Receive a message synchronously from the default destination, but only wait up to a specified time for delivery. Convert the message into an object with a configured MessageConverter.This method should be used carefully, since it will block the thread until the message becomes available or until the timeout value is exceeded.
This will only work with a default destination specified!
- 指定者:
receiveAndConvert
在接口中JmsOperations
- 返回:
- the message produced for the consumer or
null
if the timeout expires. - 抛出:
JmsException
- checked JMSException converted to unchecked
receiveAndConvert
public Object receiveAndConvert(Destination destination) throws JmsException
从接口复制的说明:JmsOperations
Receive a message synchronously from the specified destination, but only wait up to a specified time for delivery. Convert the message into an object with a configured MessageConverter.This method should be used carefully, since it will block the thread until the message becomes available or until the timeout value is exceeded.
- 指定者:
receiveAndConvert
在接口中JmsOperations
- 参数:
destination
- the destination to receive a message from- 返回:
- the message produced for the consumer or
null
if the timeout expires. - 抛出:
JmsException
- checked JMSException converted to unchecked
receiveAndConvert
public Object receiveAndConvert(String destinationName) throws JmsException
从接口复制的说明:JmsOperations
Receive a message synchronously from the specified destination, but only wait up to a specified time for delivery. Convert the message into an object with a configured MessageConverter.This method should be used carefully, since it will block the thread until the message becomes available or until the timeout value is exceeded.
- 指定者:
receiveAndConvert
在接口中JmsOperations
- 参数:
destinationName
- the name of the destination to send this message to (to be resolved to an actual destination by a DestinationResolver)- 返回:
- the message produced for the consumer or
null
if the timeout expires. - 抛出:
JmsException
- checked JMSException converted to unchecked
receiveSelectedAndConvert
public Object receiveSelectedAndConvert(String messageSelector) throws JmsException
从接口复制的说明:JmsOperations
Receive a message synchronously from the default destination, but only wait up to a specified time for delivery. Convert the message into an object with a configured MessageConverter.This method should be used carefully, since it will block the thread until the message becomes available or until the timeout value is exceeded.
This will only work with a default destination specified!
- 指定者:
receiveSelectedAndConvert
在接口中JmsOperations
- 参数:
messageSelector
- the JMS message selector expression (ornull
if none). See the JMS specification for a detailed definition of selector expressions.- 返回:
- the message produced for the consumer or
null
if the timeout expires. - 抛出:
JmsException
- checked JMSException converted to unchecked
receiveSelectedAndConvert
public Object receiveSelectedAndConvert(Destination destination, String messageSelector) throws JmsException
从接口复制的说明:JmsOperations
Receive a message synchronously from the specified destination, but only wait up to a specified time for delivery. Convert the message into an object with a configured MessageConverter.This method should be used carefully, since it will block the thread until the message becomes available or until the timeout value is exceeded.
- 指定者:
receiveSelectedAndConvert
在接口中JmsOperations
- 参数:
destination
- the destination to receive a message frommessageSelector
- the JMS message selector expression (ornull
if none). See the JMS specification for a detailed definition of selector expressions.- 返回:
- the message produced for the consumer or
null
if the timeout expires. - 抛出:
JmsException
- checked JMSException converted to unchecked
receiveSelectedAndConvert
public Object receiveSelectedAndConvert(String destinationName, String messageSelector) throws JmsException
从接口复制的说明:JmsOperations
Receive a message synchronously from the specified destination, but only wait up to a specified time for delivery. Convert the message into an object with a configured MessageConverter.This method should be used carefully, since it will block the thread until the message becomes available or until the timeout value is exceeded.
- 指定者:
receiveSelectedAndConvert
在接口中JmsOperations
- 参数:
destinationName
- the name of the destination to send this message to (to be resolved to an actual destination by a DestinationResolver)messageSelector
- the JMS message selector expression (ornull
if none). See the JMS specification for a detailed definition of selector expressions.- 返回:
- the message produced for the consumer or
null
if the timeout expires. - 抛出:
JmsException
- checked JMSException converted to unchecked
doConvertFromMessage
protected Object doConvertFromMessage(Message message)
Extract the content from the given JMS message.- 参数:
message
- the JMS Message to convert (can benull
)- 返回:
- the content of the message, or
null
if none
sendAndReceive
public Message sendAndReceive(MessageCreator messageCreator) throws JmsException
从接口复制的说明:JmsOperations
Send a request message and receive the reply from a default destination. TheMessageCreator
callback creates the message given a Session. A temporary queue is created as part of this operation and is set in theJMSReplyTO
header of the message.This will only work with a default destination specified!
- 指定者:
sendAndReceive
在接口中JmsOperations
- 参数:
messageCreator
- callback to create a request message- 返回:
- the reply, possibly
null
if the message could not be received, for example due to a timeout - 抛出:
JmsException
- checked JMSException converted to unchecked
sendAndReceive
public Message sendAndReceive(Destination destination, MessageCreator messageCreator) throws JmsException
从接口复制的说明:JmsOperations
Send a message and receive the reply from the specified destination. TheMessageCreator
callback creates the message given a Session. A temporary queue is created as part of this operation and is set in theJMSReplyTO
header of the message.- 指定者:
sendAndReceive
在接口中JmsOperations
- 参数:
destination
- the destination to send this message tomessageCreator
- callback to create a message- 返回:
- the reply, possibly
null
if the message could not be received, for example due to a timeout - 抛出:
JmsException
- checked JMSException converted to unchecked
sendAndReceive
public Message sendAndReceive(String destinationName, MessageCreator messageCreator) throws JmsException
从接口复制的说明:JmsOperations
Send a message and receive the reply from the specified destination. TheMessageCreator
callback creates the message given a Session. A temporary queue is created as part of this operation and is set in theJMSReplyTO
header of the message.- 指定者:
sendAndReceive
在接口中JmsOperations
- 参数:
destinationName
- the name of the destination to send this message to (to be resolved to an actual destination by a DestinationResolver)messageCreator
- callback to create a message- 返回:
- the reply, possibly
null
if the message could not be received, for example due to a timeout - 抛出:
JmsException
- checked JMSException converted to unchecked
doSendAndReceive
protected Message doSendAndReceive(Session session, Destination destination, MessageCreator messageCreator) throws JMSException
Send a request message to the givenDestination
and block until a reply has been received on a temporary queue created on-the-fly.Return the response message or
null
if no message has- 抛出:
JMSException
- if thrown by JMS API methods
browse
public <T> T browse(BrowserCallback<T> action) throws JmsException
从接口复制的说明:JmsOperations
Browse messages in the default JMS queue. The callback gives access to the JMS Session and QueueBrowser in order to browse the queue and react to the contents.- 指定者:
browse
在接口中JmsOperations
- 参数:
action
- callback object that exposes the session/browser pair- 返回:
- the result object from working with the session
- 抛出:
JmsException
- checked JMSException converted to unchecked
browse
public <T> T browse(Queue queue, BrowserCallback<T> action) throws JmsException
从接口复制的说明:JmsOperations
Browse messages in a JMS queue. The callback gives access to the JMS Session and QueueBrowser in order to browse the queue and react to the contents.- 指定者:
browse
在接口中JmsOperations
- 参数:
queue
- the queue to browseaction
- callback object that exposes the session/browser pair- 返回:
- the result object from working with the session
- 抛出:
JmsException
- checked JMSException converted to unchecked
browse
public <T> T browse(String queueName, BrowserCallback<T> action) throws JmsException
从接口复制的说明:JmsOperations
Browse messages in a JMS queue. The callback gives access to the JMS Session and QueueBrowser in order to browse the queue and react to the contents.- 指定者:
browse
在接口中JmsOperations
- 参数:
queueName
- the name of the queue to browse (to be resolved to an actual destination by a DestinationResolver)action
- callback object that exposes the session/browser pair- 返回:
- the result object from working with the session
- 抛出:
JmsException
- checked JMSException converted to unchecked
browseSelected
public <T> T browseSelected(String messageSelector, BrowserCallback<T> action) throws JmsException
从接口复制的说明:JmsOperations
Browse selected messages in a JMS queue. The callback gives access to the JMS Session and QueueBrowser in order to browse the queue and react to the contents.- 指定者:
browseSelected
在接口中JmsOperations
- 参数:
messageSelector
- the JMS message selector expression (ornull
if none). See the JMS specification for a detailed definition of selector expressions.action
- callback object that exposes the session/browser pair- 返回:
- the result object from working with the session
- 抛出:
JmsException
- checked JMSException converted to unchecked
browseSelected
public <T> T browseSelected(Queue queue, String messageSelector, BrowserCallback<T> action) throws JmsException
从接口复制的说明:JmsOperations
Browse selected messages in a JMS queue. The callback gives access to the JMS Session and QueueBrowser in order to browse the queue and react to the contents.- 指定者:
browseSelected
在接口中JmsOperations
- 参数:
queue
- the queue to browsemessageSelector
- the JMS message selector expression (ornull
if none). See the JMS specification for a detailed definition of selector expressions.action
- callback object that exposes the session/browser pair- 返回:
- the result object from working with the session
- 抛出:
JmsException
- checked JMSException converted to unchecked
browseSelected
public <T> T browseSelected(String queueName, String messageSelector, BrowserCallback<T> action) throws JmsException
从接口复制的说明:JmsOperations
Browse selected messages in a JMS queue. The callback gives access to the JMS Session and QueueBrowser in order to browse the queue and react to the contents.- 指定者:
browseSelected
在接口中JmsOperations
- 参数:
queueName
- the name of the queue to browse (to be resolved to an actual destination by a DestinationResolver)messageSelector
- the JMS message selector expression (ornull
if none). See the JMS specification for a detailed definition of selector expressions.action
- callback object that exposes the session/browser pair- 返回:
- the result object from working with the session
- 抛出:
JmsException
- checked JMSException converted to unchecked
getConnection
protected Connection getConnection(JmsResourceHolder holder)
Fetch an appropriate Connection from the given JmsResourceHolder.This implementation accepts any JMS 1.1 Connection.
- 参数:
holder
- the JmsResourceHolder- 返回:
- an appropriate Connection fetched from the holder, or
null
if none found
getSession
protected Session getSession(JmsResourceHolder holder)
Fetch an appropriate Session from the given JmsResourceHolder.This implementation accepts any JMS 1.1 Session.
- 参数:
holder
- the JmsResourceHolder- 返回:
- an appropriate Session fetched from the holder, or
null
if none found
isSessionLocallyTransacted
protected boolean isSessionLocallyTransacted(Session session)
Check whether the given Session is locally transacted, that is, whether its transaction is managed by this listener container's Session handling and not by an external transaction coordinator.Note: The Session's own transacted flag will already have been checked before. This method is about finding out whether the Session's transaction is local or externally coordinated.
- 参数:
session
- the Session to check- 返回:
- whether the given Session is locally transacted
- 另请参阅:
JmsAccessor.isSessionTransacted()
,ConnectionFactoryUtils.isSessionTransactional(javax.jms.Session, javax.jms.ConnectionFactory)
createProducer
protected MessageProducer createProducer(Session session, Destination destination) throws JMSException
Create a JMS MessageProducer for the given Session and Destination, configuring it to disable message ids and/or timestamps (if necessary).Delegates to
doCreateProducer(javax.jms.Session, javax.jms.Destination)
for creation of the raw JMS MessageProducer.- 参数:
session
- the JMS Session to create a MessageProducer fordestination
- the JMS Destination to create a MessageProducer for- 返回:
- the new JMS MessageProducer
- 抛出:
JMSException
- if thrown by JMS API methods- 另请参阅:
setMessageIdEnabled(boolean)
,setMessageTimestampEnabled(boolean)
doCreateProducer
protected MessageProducer doCreateProducer(Session session, Destination destination) throws JMSException
Create a raw JMS MessageProducer for the given Session and Destination.This implementation uses JMS 1.1 API.
- 参数:
session
- the JMS Session to create a MessageProducer fordestination
- the JMS Destination to create a MessageProducer for- 返回:
- the new JMS MessageProducer
- 抛出:
JMSException
- if thrown by JMS API methods
createConsumer
protected MessageConsumer createConsumer(Session session, Destination destination, String messageSelector) throws JMSException
Create a JMS MessageConsumer for the given Session and Destination.This implementation uses JMS 1.1 API.
- 参数:
session
- the JMS Session to create a MessageConsumer fordestination
- the JMS Destination to create a MessageConsumer formessageSelector
- the message selector for this consumer (can benull
)- 返回:
- the new JMS MessageConsumer
- 抛出:
JMSException
- if thrown by JMS API methods
createBrowser
protected QueueBrowser createBrowser(Session session, Queue queue, String messageSelector) throws JMSException
Create a JMS MessageProducer for the given Session and Destination, configuring it to disable message ids and/or timestamps (if necessary).Delegates to
doCreateProducer(javax.jms.Session, javax.jms.Destination)
for creation of the raw JMS MessageProducer.- 参数:
session
- the JMS Session to create a QueueBrowser forqueue
- the JMS Queue to create a QueueBrowser formessageSelector
- the message selector for this consumer (can benull
)- 返回:
- the new JMS QueueBrowser
- 抛出:
JMSException
- if thrown by JMS API methods- 另请参阅:
setMessageIdEnabled(boolean)
,setMessageTimestampEnabled(boolean)