JMS, (Java Message Service), est la spécification de Sun pour la gestion des messages de la plate-forme Java EE
Le provider JMS inclus dans Geronimo est ActiveMQ. On définit les ressources JMS dans la console de Geronimo. Ces ressources sont ensuite référencées, notamment via JNDI, dans les applications (J2EE déployées sur Geronimo ou même standalone externe).
Ressources Geronimo
MyTestQueue
avec PhysicalName MyTestQueue
(1c)QueueDiffPN
avec PhysicalName PhysNameQueue
(1c)QueueNoPhyName
sans PhysicalName (1c)Application EAR
<nam:resource-ref> <nam:ref-name> jms/epims </nam:ref-name> (2) <nam:resource-link> epims_cf </nam:resource-link> (1b) </nam:resource-ref>
<message-destination-ref> <message-destination-ref-name> MyRefQueue </message-destination-ref-name> (3) <message-destination-type>javax.jms.Queue</message-destination-type> <message-destination-usage>Produces</message-destination-usage> <message-destination-link>QueueDiffPN</message-destination-link> (1c) </message-destination-ref>
java:comp/env/MyRefQueue
(3)PhysNameQueue
par exemple (1c)Le workspace Eclipse utilisé pour les tests est sauvegardé (pour le laboratoire EDyP) dans Informatique/Gestion de Projets/ePims/Developpement
L'utilisation de la classe JmsTemplate de Spring semble poser des problèmes lors de l'envoi/réception de messages dans des TOPIC. Tout est OK pour les QUEUE.
Configuration :
Comportement :
En d'autre termes les “listeners” utilisant JmsTemplate ne reçoivent des messages que des “senders” utilisant Jms Template et inversement; les messages émis par des “senders” utilisant JmsTemplate ne sont reçu que par des “listeners” utilisant JmsTemplate.
Solution : Dans un premier temps (?), nous n'allons pas utiliser le JmsTemplate de Spring afin d'éviter ces problèmes…. Des tests devront/pourront être faits pour tenter d'élucider ce problème ! Les articles suivants sont à conserver sous le coude : http://activemq.apache.org/spring-support.html http://activemq.apache.org/jmstemplate-gotchas.html