JMS e o Spring Framework

Um aplicativo Spring Framework pode usar a classe JMSTemplate para enviar mensagens JMS ou receber mensagens JMS síncronas.

O JMSTemplate pode localizar destinos JMS a partir de seu nome Java™ Naming and Directory Interface (JNDI) que você configura em uma referência de recurso do aplicativo.

Alternativamente, o Spring Framework Versão 2.5 e mais recente, o JMSTemplate pode localizar destinos JMS por meio de deliberação dinâmica, que consulta o nome administrativo do destino que está configurado no WebSphere Application Server

Você usa um JndiObjectFactoryBean do Spring como um proxy para um ConnectionFactory para garantir que os recursos JMS sejam gerenciados corretamente. Por exemplo:
<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>
O seguinte exemplo mostra a configuração de uma referência de recurso para um ConnectionFactory. Durante a implementação do aplicativo, esta referência de recurso é mapeada para uma Connection Factory mapeada e gerenciada que é armazenada no espaço de nomes JNDI do servidor de aplicativos. O ConnectionFactory é necessário para realizar o sistema de mensagens e deve ser injetada no objeto 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>
Após haver um nome JNDI definido para o ConnectionFactory no aplicativo, esse nome JNDI pode ser consultado e injetado no JMSTemplate. Por exemplo:
<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>

<!-- Um resolvedor dinâmico --> 
<bean id="jmsDestResolver" 
  class=" org.springframework.jms.support.destination.DynamicDestinationResolver"/>

<!-- Um resolvedor JNDI -->  
<bean id="jmsDestResolver" 
  class=" org.springframework.jms.support.destination.JndiDestinationResolver"/>

No tempo de execução, o objeto JMSTemplate pode localizar um destino com base em seu nome JNDI que foi configurada em uma referência de recurso do aplicativo. Alternativamente, o objeto JMSTemplate pode localizar um destino usando a resolução dinâmica, com base no nome administrativo do destino configurado no WebSphere Application Server.

O exemplo a seguir mostra como usar a deliberação JNDI para localizar o myQueue da fila JMS que é limitado a uma referência JNDI de jms/myQueue:
jmsTemplate.send("java:comp/env/jms/myQueue", messageCreator);
O exemplo a seguir mostra como usar a deliberação dinâmica para localizar o myQueue da fila JMS que é limitado a uma referência JNDI de jms/myQueue:
jmsTemplate.send("myQueue", messageCreator);

Ícone que indica o tipo de tópico Tópico de Conceito



Ícone de registro de data e hora Última atualização: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cspr_data_access_jms
Nome do arquivo: cspr_data_access_jms.html