JMS y Spring Framework
Una aplicación Spring Framework puede utilizar la clase JMSTemplate para enviar mensajes JMS o recibir mensajes JMS síncronos.
JMSTemplate puede localizar destinos JMS a partir de su nombre JNDI (Java™ Naming and Directory Interface) que configura en una referencia de recursos de aplicación.
Alternativamente, para la versión Spring Framework 2.5 y posteriormente, JMSTemplate puede localizar destinos JMS mediante resolución dinámica, que busca el nombre administrativo del destino que está configurado en WebSphere® Application Server
<bean id="jmsConnectionFactory"
class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="java:comp/env/jms/myCF"/>
<property name="lookupOnStartup" value="false"/>
<property name="cache" value="true"/>
<property name="proxyInterface" value="javax.jms.ConnectionFactory"/>
</bean><resource-ref>
<res-ref-name>jms/myCF</res-ref-name>
<res-type>javax.jms.ConnectionFactory</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
<jee:jndi-lookup id="jmsConnectionFactory" jndi-name=" jms/myCF "/>
<bean id="jmsQueueTemplate" class="org.springframework.jms.core.JmsTemplate">
<property name="connectionFactory">
<ref bean="jmsConnectionFactory"/>
</property>
<property name="destinationResolver">
<ref bean="jmsDestResolver"/>
</property>
...
</bean>
<!-- A dynamic resolver -->
<bean id="jmsDestResolver"
class=" org.springframework.jms.support.destination.DynamicDestinationResolver"/>
<!-- A JNDI resolver -->
<bean id="jmsDestResolver"
class=" org.springframework.jms.support.destination.JndiDestinationResolver"/>
En el tiempo de ejecución, el objeto JMSTemplate puede localizar un destino basándose en el nombre JNDI que se ha configurado en una referencia de recurso de aplicación. Alternativamente, el objeto JMSTemplate puede localizar un destino mediante resolución dinámica, según el nombre administrativo del destino configurado en WebSphere Application Server.
jmsTemplate.send("java:comp/env/jms/myQueue", messageCreator);jmsTemplate.send("myQueue", messageCreator);