Reprenez l'exemple du Bean Calc donné en cours, et réalisez cet EJB avec Netbeans.
Programmez ensuite le client sous la forme d'un servlet. La méthode init() récupèrera une référence sur l'interface métier d'une instance de cet EJB. L'une des méthodes de service appellera la méthode add() de ce bean.
Enfin, écrivez une page XHTML contenant un formulaire qui passe des paramètres à cette servlet.
Réalisez un EJB session avec état qui aura pour tâche, pour chaque client, de conserver un nombre différent, passé en paramètre par ce client en mémoire, et de le le renvoyer au cient sur sa demande. Les méthodes métier seront des accesseurs standards pour la propriété dans laquelle sera stocké ce nombre.
De la même manière que précédemment, réalisez un servlet client de ce bean et la page HTML qui permet de l'interroger.
Réalisez un EJB session qui fera office d'accumulateur : il sera client des deux beans précédents, et aura pour fonction de rajouter un nombre à la valeur déjà mise en mémoire, de stocker ce nouveau nombre dans le bean avec état, et de renvoyer le résultat de l'addition à son client.
Ce bean doit-il être avec ou sans état ?
Réalisez un servlet client de ce troisième bean. La méthode de service utilisée dans ce servlet contiendra le formulaire qui rappellera automatiquement cette méthode, de façon à pouvoir accumuler plusieurs nombres à la suite.
Réalisez un bean entité capable de stocker un nombre dans une base de données pour un utilisateur (identifié par un pseudo).
réutilisez le servlet client de la deuxième question (EJB session avec états) pour réaliser le client de ce bean.
Proposez un moyen simple d'éviter à l'utilisateur du servlet de rentrer son pseudo à chaque utilisation.
Réalisez une application qui permet de mémoriser et de stocker les scores de plusieurs joueurs sur un jeu en réseau. On suppose que le jeu est programmé par ailleurs, et que votre serveur d'application n'est utilisé que pour gérer les scores. Pour cela :
dans l'application précédente (communication entre EJB), remplacez le deuxième EJB (session avec états) par votre EJB entité, et modifiez le troisième EJB session pour qu'il soit capable de stocker le pseudo d'un utilisateur, et qu'il devienne client de votre bean entité.
On imagine que le vainqueur du jeu est le premier à atteindre 500 points. Indiquez un moyen de détecter si l'un des joueurs a gagné.
Concevez également une application Java (non Web), cliente distante de votre application J2EE, capable d'inscrire un joueur, d'incrémenter son score et de renvoyer le nouveau score.
Vous travaillerez par binômes. Ce projet est à envoyer par mail à Lionel Médini pour le lundi 6 mars. Pour cette date, vous devrez envoyer un fichier zippé contenant :
Remarques :