User Tools

Site Tools


wiki:epims4_0m2:developer:jms

This is an old revision of the document!


JMS

JMS, (Java Message Service), est la spécification de Sun pour la gestion des messages de la plate-forme Java EE

... et Geronimo

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).

Configuration et liens entre ressources/références

Ressources Geronimo

  • JMS Resource Group (Resource Adapter?): epims_jms (1a)
    • ConnectionFactory epims_cf (1b)
    • Queue : MyTestQueue avec PhysicalName MyTestQueue (1c)
    • Queue : QueueDiffPN avec PhysicalName PhysNameQueue (1c)
    • Queue : QueueNoPhyName sans PhysicalName (1c)

Application EAR

  • EAR
    • dépendance vers console.jms epims_jms (1a) (dans geronimo-application.xml)
  • application Web (incluse dans le EAR)
    • définition d'un mapping dans geronimo-web.xml
   <nam:resource-ref>
      <nam:ref-name> jms/epims </nam:ref-name>            (2)
      <nam:resource-link> epims_cf </nam:resource-link>  (1b)
   </nam:resource-ref>
  • utilisation de la référence jms/epims de type javax.jms.ConnectionFactory dans web.xml
  • définition des messages utilisés dans web.xml
   <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>
  • dans le code (servlet envoyant un msg par exemple) accès via jndi(lookup) à java:comp/env/MyRefQueue (3)
  • application standalone / Spring Core
    • accès au context via JNDI (SpringCore) java:comp/env/jms/epims (2)
    • accès à l'objet Queue via le nom physique : PhysNameQueue par exemple (1c)

Tests réalisés

  • Il est nécessaire que la référence du message dans web.xml (3) soit celle utilisée dans le code
  • Si on utilise un physicalName <> nom de l'objet Queue dans Geronimo, c'est le physicalname qui doit être utilisé dans les applications standalone mais c'est le nom qui doit être spécifié dans l'application web
  • Un physical name doit obligatoirement être spécifié !

Le workspace Eclipse utilisé pour les tests est sauvegardé (pour le laboratoire EDyP) dans Informatique/Gestion de Projets/ePims/Developpement

wiki/epims4_0m2/developer/jms.1207298885.txt.gz · Last modified: 2008/09/24 15:35 (external edit)