JMS y Spring Framework
Una aplicación Spring Framework puede utilizar la clase JMSTemplate para enviar mensajes JMS o recibir mensajes JMS síncronos.
La plantilla JMS (JMSTemplate) puede localizar destinos JMS a partir del nombre JNDI (Java™ Naming and Directory Interface) que configure en una referencia de recurso de aplicación.
De manera alternativa, para Spring Framework Versión 2.5 y posterior, la plantilla JMS puede localizar destinos JMS mediante la resolución dinámica, que busca el nombre administrativo del destino que se ha 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>
<!-- Solucionador dinámico -->
<bean id="jmsDestResolver"
class=" org.springframework.jms.support.destination.DynamicDestinationResolver"/>
<!-- Solucionador JNDI -->
<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 utilizando la resolución dinámica, basándose en el nombre administrativo del destino configurado en WebSphere Application Server.
jmsTemplate.send("java:comp/env/jms/myQueue", messageCreator);
jmsTemplate.send("myQueue", messageCreator);