ejb3 3-message-driven-beans fr

21
1 EJB 3: Message Driven Beans

Upload: javaconsulttn

Post on 18-Dec-2014

764 views

Category:

Documents


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Ejb3 3-message-driven-beans fr

1

EJB 3: Message Driven Beans

Page 2: Ejb3 3-message-driven-beans fr

2

AgendaDistinguer un message-driven beans (BMD) à partir de session de beans 

Types de messages

Faire un MDB pour recevoir Messages textes

Faire un client d'envoyer Messages textes

Page 3: Ejb3 3-message-driven-beans fr

3

Présentation

Page 4: Ejb3 3-message-driven-beans fr

4

Session Beans vs.Message-Driven Beans (MDB)

Session de beans-Appelez directement

• Le client accède à spécifiques (via l’interface)

-invoqué manière synchrone• Le client attend jusqu'à bean

la réponse se termine-Peut retourner des valeurs au client

• Client peut recevoir le valeurde retour à partir d'appel de méthode

-- Basé sur les interfaces           • EJB est l'interface en plus classe     concrète           • Le client fait référence à l'interface

Message-driven Beans-Appelez directement

• Le client met un message dans la file.Queue décide plus tard sur lequelbean reçoit le message.

-invoqué manière synchrone• Pas d'attente pour le bean à traiter la

demande. Les messages pas toujours envoyé.-Ne pas retourner les valeurs pour le client («feuet oublier »)

• Le client peut envoyer des données, mais ne peut pas obtenir la valeur de réponse

-Non basée sur des interfaces         • EJB peut être classe concrète uniquement         • Le client ne fait pas référence à la classe de           aucune façon (seulement pour la file d'attente)

Page 5: Ejb3 3-message-driven-beans fr

5

approche généraleserveur

Classe implémente MessageListener Remplace onMessage Tagged avec @ MessageDriven Habituellement avec type de file activationConfig donnant le nom &

Blah-service.xmlDonne spécifiques au serveur définition de file de messages

Client classe principale

Trouve ConnectionFactory et file d'attente dans InitialContext Crée session et MessageProducer Envoie à plusieurs reprises TextMessage, ObjectMessage, ou d'autres type 

de message jndi.properties

Même que dans la section sur les sessions de beans

Page 6: Ejb3 3-message-driven-beans fr

6

Types de messagesIl ya cinq types de messages prédéfinis

TextMessagePour envoyer Strings

ObjectMessagePour envoyer des objets sérialisables

MapMessagePour envoyer des ensembles de noms (Cordes) et les valeurs (primitives).

 ByteMessage• Pour envoyer des messages binaires (flux d'octets)

 StreamMessage• Pour envoyer une série de primitives Java

Serveur jette arg onMessage à ce type Server peut faire l’instance si le  même MDB recevra plus d'un type 

de message

Page 7: Ejb3 3-message-driven-beans fr

7

MDB pour les messages texte

Page 8: Ejb3 3-message-driven-beans fr

8

approche Faire nouvel EJB projet

Implementer MessageListener Remplacer onMessage, casté l’ argument à TextMessage, extrait message String 

avec getText Étiquette avec@MessageDriven Habituellement définissent activationConfig à l'annotation, mais peut être 

défini par programmation destinationType est généralement javax.jms.Queue destination est la file d'attente / YourQueueName

Mettez YourQueueName-service.xml dans src Contient spécifique au serveur d'informations (voir la diapositive à venir)

Déployer application serveur cliquez R- sur serveur, Ajouter / Supprimer des projets, de démarrer le 

serveur

Page 9: Ejb3 3-message-driven-beans fr

9

projet EJB faire des projets

Pick a name JBoss en tant que cible d'exécution

Déploiement sur serveur différent nécessite tard changer de serveur spécifiqueBlah-service.xml

Facultatif: Ajouter à une oreilleSi vous faite  Projet web  Dynamique plus tard qui veut utiliser @ EJB, 

vous pouvez l'ajouter à la même oreille

Déploiement de projet R-cliquez sur JBoss, Ajouter et supprimer des projets, choisissez 

Projet, Ajouter,Terminer R-click on JBoss, Start

Page 10: Ejb3 3-message-driven-beans fr

10

classe listener

Page 11: Ejb3 3-message-driven-beans fr

11

SimpleQ-service.xml (JBoss-Specific!)

Page 12: Ejb3 3-message-driven-beans fr

12

Les clients qui s'attendent à des BMD Messages textes

Page 13: Ejb3 3-message-driven-beans fr

13

approcheFaire nouveau projet

Pour standalone / bureau client

Pour les applications Web qui invoquent BMD

Envoyer des messages Obtenez InitialContext, rechercher ConnectionFactory & Queue Faire Connection, Session et MessageProducer Utilisez MessageProducer d'envoyer Messages textes

Mettez jndi.properties dans src Comme dans la section sur les  session de beans

Déployer application serveur cliquez  R-sur serveur, Ajouter / Supprimer des projets, de démarrer le 

serveurPour les projets Web, mais pas pour le bureau des projets Java

Page 14: Ejb3 3-message-driven-beans fr

14

Remote Desktop Client

Page 15: Ejb3 3-message-driven-beans fr

15

Remote Desktop Client (Suite)

Page 16: Ejb3 3-message-driven-beans fr

16

Remote Client: jndi.properties

Page 17: Ejb3 3-message-driven-beans fr

17

Standalone Client à distance: Déploiement

Messages (projet EJB)

 Déployé à JBoss.

 SimpleQ-service.xml a JBoss spécifiques d'info

Messages-client (Dynamic Web Project)

 Pas encore déployé sur n'importe quel serveur.

 jndi.properties a JBoss spécifiques d'info

Page 18: Ejb3 3-message-driven-beans fr

18

Standalone Client à distance: Résultats (JBoss server.log)

Page 19: Ejb3 3-message-driven-beans fr

19

Récapitulation

Page 20: Ejb3 3-message-driven-beans fr

20

Résumé serveur

 Implementer MessageListenerRemplacer onMessage, casté l’ argument à TextMessage, extrait message String avec 

getTextÉtiquette avec@MessageDrivenHabituellement définissent activationConfig à l'annotation

Mettez YourQueueName-service.xml dans srcClient

classe JavaObtenez InitialContext, rechercher ConnectionFactory & QueueFaire Connection, Session et MessageProducerUtilisez MessageProducer d'envoyer Messages textes

Mettez jndi.properties dans src

Page 21: Ejb3 3-message-driven-beans fr

21

Des questions?