JMS et Spring Framework

Une application Spring Framework peut utiliser la classe JMSTemplate pour envoyer des messages JMS ou recevoir des messages JMS synchrones.

La classe JMSTemplate peut localiser des destinations JMS à partir d'un nom JNDI (Java™ Naming and Directory Interface) que vous configurez dans une référence de ressource d'application.

Alternativement, pour Spring Framework Version 2.5 et versions suivantes, la classe JMSTemplate peut localiser les destinations JMS par résolution dynamique, c'est-à-dire en recherchant leur nom administratif configuré dans WebSphere Application Server.

Vous utilisez un objet Spring JndiObjectFactoryBean comme relais d'un objet ConnectionFactory pour vérifier que les ressources JMS sont correctement gérées. Exemple :
<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>
L'exemple suivant montre comment configurer une référence de ressource pour un objet ConnectionFactory. Pendant le déploiement de l'application, cette référence de ressource est mappée à une fabrique de connexions gérée, configurée et installée dans l'espace de nom JNDI du serveur d'applications. L'objet ConnectionFactory est obligatoire pour la messagerie et doit être injecté dans l'objet Spring JMSTemplate.
<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>
Quand le nom JNDI défini pour l'objet ConnectionFactory a été injecté dans l'application, ce nom JNDI peut être recherché et injecté dans l'objet JMSTemplate. Exemple :
<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"/>

Pendant la phase d'exécution, l'objet JMSTemplate peut rechercher une destination sur la base du nom JNDI qui a été configuré dans une référence de ressource d'application. L'objet JMSTemplate peut également rechercher une destination en utilisant la résolution dynamique en fonction du nom d'administration de la destination configurée dans WebSphere Application Server.

L'exemple suivant montre comment utiliser la résolution dynamique pour rechercher la file d'attente JMS "myQueue" liée à une référence JNDI de jms/myQueue :
jmsTemplate.send("java:comp/env/jms/myQueue", messageCreator);
L'exemple suivant montre comment utiliser la résolution dynamique pour rechercher la file d'attente JMS "myQueue" liée à une référence JNDI de jms/myQueue :
jmsTemplate.send("myQueue", messageCreator);

Icône indiquant le type de rubrique Rubrique de concept



Icône d'horodatage Dernière mise à jour: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cspr_data_access_jms
Nom du fichier : cspr_data_access_jms.html