TP3 : EJB
Transcription
TP3 : EJB
Composants et Services Logiciels TP3 : EJB 1. Créer un nouveau projet (EJB Module) : DistanceConverter. 2. Créez un Stateless Session Bean DistanceConverterBean implémentant le service de conversion de mesure de distance DistanceConverter. Ce dernier proposera les opérations Float kmToMile(Float value) et Float mileToKm(Float value). L'interface de service fourni sera packagé dans un package à part afin de pouvoir être distribué aux clients. Pour déployer l'application sur le serveur cliquer bouton droit dessus → deploy. Il faut aussi préciser dans DistanceConverterBean que c'est l'interface distance de DistanceConverter (@Remote(DistanceConverter.class) pour qu'elle soit accessible à distance via JNDI. 3. Le javabean Speedometer maintenant requiert le service DistanceConverter. Accédez à votre session bean DistanceConverterBean afin d'invoquer les opérations de conversion (plutôt que de réaliser la conversion dans le javabean). Pour cela ajouter une fonction dans Speedometer pour lui fournir un objet de type DistanceConverter. Le lookup pour récupérer l'object du serveur sera à faire dans le main. 4. Remplacez le javabean SpeedSensor par un Stateful Session Bean. Comme on ne peut pas créer de thread dans un EJB, utilisez le TimerService pour cadencer votre nouveau SpeedSensor. La méthode @TimeOut ne peut pas être invoquée dans un StateFul Session Bean. Le bean gérant le timer sera donc Stateless, on ne peut donc pas s'appuyer sur une référence directe au SpeedSensor. Le SpeedSensor devra donc se mettre en écoute d'une file sur laquelle le timer service publiera une notification lorsque le timeout survient. ◦ Créer une classe SpeedSensorBean implémentant l'interface SpeedSensor. ◦ Créer une classe TimerSessionBean implémentant l'interface TimedObject. Il faut créer un timer contenant un SpeedSensorBean qui executera une fonction dans ce dernier à chaque timeout (à chaque x intervalle fournit). 5. Créer un projet pour votre client. Il instanciera le session bean SpeedSensor et le javabean Speedometer.