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.