public abstract class JmsAccessor extends Object implements InitializingBean
JmsTemplate and other
 JMS-accessing gateway helpers, defining common properties such as the
 JMS ConnectionFactory to operate on. The subclass
 JmsDestinationAccessor
 adds further, destination-related properties.
 Not intended to be used directly.
 See JmsTemplate.
JmsDestinationAccessor, 
JmsTemplate| Modifier and Type | Field and Description | 
|---|---|
| protected Log | loggerLogger available to subclasses. | 
| Constructor and Description | 
|---|
| JmsAccessor() | 
| Modifier and Type | Method and Description | 
|---|---|
| void | afterPropertiesSet()Invoked by the containing  BeanFactoryafter it has set all bean properties
 and satisfiedBeanFactoryAware,ApplicationContextAwareetc. | 
| protected JmsException | convertJmsAccessException(JMSException ex)Convert the specified checked  JMSExceptionto
 a Spring runtimeJmsExceptionequivalent. | 
| protected Connection | createConnection()Create a JMS Connection via this template's ConnectionFactory. | 
| protected Session | createSession(Connection con)Create a JMS Session for the given Connection. | 
| ConnectionFactory | getConnectionFactory()Return the ConnectionFactory that this accessor uses for obtaining
 JMS  Connections. | 
| int | getSessionAcknowledgeMode()Return the acknowledgement mode for JMS  sessions. | 
| protected boolean | isClientAcknowledge(Session session)Determine whether the given Session is in client acknowledge mode. | 
| boolean | isSessionTransacted()Return whether the JMS  sessionsused by this
 accessor are supposed to be transacted. | 
| protected ConnectionFactory | obtainConnectionFactory()Obtain the ConnectionFactory for actual use. | 
| void | setConnectionFactory(ConnectionFactory connectionFactory)Set the ConnectionFactory to use for obtaining JMS  Connections. | 
| void | setSessionAcknowledgeMode(int sessionAcknowledgeMode)Set the JMS acknowledgement mode that is used when creating a JMS
  Sessionto send a message. | 
| void | setSessionAcknowledgeModeName(String constantName)Set the JMS acknowledgement mode by the name of the corresponding constant
 in the JMS  Sessioninterface, e.g. | 
| void | setSessionTransacted(boolean sessionTransacted)Set the transaction mode that is used when creating a JMS  Session. | 
protected final Log logger
public void setConnectionFactory(@Nullable ConnectionFactory connectionFactory)
Connections.@Nullable public ConnectionFactory getConnectionFactory()
Connections.protected final ConnectionFactory obtainConnectionFactory()
null)IllegalStateException - in case of no ConnectionFactory setpublic void setSessionTransacted(boolean sessionTransacted)
Session.
 Default is "false".
 Note that within a JTA transaction, the parameters passed to
 create(Queue/Topic)Session(boolean transacted, int acknowledgeMode)
 method are not taken into account. Depending on the Java EE transaction context,
 the container makes its own decisions on these values. Analogously, these
 parameters are not taken into account within a locally managed transaction
 either, since the accessor operates on an existing JMS Session in this case.
 
Setting this flag to "true" will use a short local JMS transaction when running outside a managed transaction, and a synchronized local JMS transaction in case of a managed transaction (other than an XA transaction) being present. This has the effect of a local JMS transaction being managed alongside the main transaction (which might be a native JDBC transaction), with the JMS transaction committing right after the main transaction.
Connection.createSession(boolean, int)public boolean isSessionTransacted()
sessions used by this
 accessor are supposed to be transacted.setSessionTransacted(boolean)public void setSessionAcknowledgeModeName(String constantName)
Session interface, e.g. "CLIENT_ACKNOWLEDGE".
 If you want to use vendor-specific extensions to the acknowledgement mode,
 use setSessionAcknowledgeMode(int) instead.
constantName - the name of the Session acknowledge mode constantSession.AUTO_ACKNOWLEDGE, 
Session.CLIENT_ACKNOWLEDGE, 
Session.DUPS_OK_ACKNOWLEDGE, 
Connection.createSession(boolean, int)public void setSessionAcknowledgeMode(int sessionAcknowledgeMode)
Session to send a message.
 Default is Session.AUTO_ACKNOWLEDGE.
 
Vendor-specific extensions to the acknowledgement mode can be set here as well.
Note that inside an EJB, the parameters to the
 create(Queue/Topic)Session(boolean transacted, int acknowledgeMode) method
 are not taken into account. Depending on the transaction context in the EJB,
 the container makes its own decisions on these values. See section 17.3.5
 of the EJB spec.
sessionAcknowledgeMode - the acknowledgement mode constantSession.AUTO_ACKNOWLEDGE, 
Session.CLIENT_ACKNOWLEDGE, 
Session.DUPS_OK_ACKNOWLEDGE, 
Connection.createSession(boolean, int)public int getSessionAcknowledgeMode()
sessions.public void afterPropertiesSet()
InitializingBeanBeanFactory after it has set all bean properties
 and satisfied BeanFactoryAware, ApplicationContextAware etc.
 This method allows the bean instance to perform validation of its overall configuration and final initialization when all bean properties have been set.
afterPropertiesSet in interface InitializingBeanprotected JmsException convertJmsAccessException(JMSException ex)
JMSException to
 a Spring runtime JmsException
 equivalent.
 The default implementation delegates to the
 JmsUtils.convertJmsAccessException(javax.jms.JMSException) method.
ex - the original checked JMSException to convertJmsException wrapping exJmsUtils.convertJmsAccessException(javax.jms.JMSException)protected Connection createConnection() throws JMSException
This implementation uses JMS 1.1 API.
JMSException - if thrown by JMS API methodsConnectionFactory.createConnection()protected Session createSession(Connection con) throws JMSException
This implementation uses JMS 1.1 API.
con - the JMS Connection to create a Session forJMSException - if thrown by JMS API methodsConnection.createSession(boolean, int)protected boolean isClientAcknowledge(Session session) throws JMSException
This implementation uses JMS 1.1 API.
session - the JMS Session to checkJMSException - if thrown by JMS API methodsSession.getAcknowledgeMode(), 
Session.CLIENT_ACKNOWLEDGE