ejb3 3-message-driven-beans fr
DESCRIPTION
TRANSCRIPT
1
EJB 3: Message Driven Beans
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
3
Présentation
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)
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
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
7
MDB pour les messages texte
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
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
10
classe listener
11
SimpleQ-service.xml (JBoss-Specific!)
12
Les clients qui s'attendent à des BMD Messages textes
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
14
Remote Desktop Client
15
Remote Desktop Client (Suite)
16
Remote Client: jndi.properties
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
18
Standalone Client à distance: Résultats (JBoss server.log)
19
Récapitulation
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
21
Des questions?