IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Introduction aux frameworks JSF2, Primefaces et Primefaces mobile


précédentsommairesuivant

XI. Application exemple-06 : rdvmedecins-pfm-spring

XI-A. Le portage

Nous portons maintenant l'application précédente dans un environnement Spring / Tomcat :

Image non disponible

Nous allons nous appuyer sur deux applications déjà écrites. Nous allons utiliser :

  • les couches [DAO] et [JPA] de la version 02 JSF / Spring,
  • la couche [web] / Primefaces mobile de la version 05 PFM / EJB,
  • les fichiers de configuration de Spring de la version 02

Nous refaisons là un travail analogue à celui qui avait été fait pour porter l'application JSF2 / EJB / Glassfish dans un environnement JSF2 / Spring Tomcat. Aussi donnerons-nous moins d'explications. Le lecteur peut, s'il en est besoin, se reporter à ce portage.

Nous mettons tous les projets nécessaires au portage dans un nouveau dossier [rdvmedecins-pfm-spring] [1] :

Image non disponible
  • [mv-rdvmedecins-spring-dao-jpa] : les couches [DAO] et [JPA] de la version 02 JSF / Spring,
  • [mv-rdvmedecins-spring-metier] : la couche [métier] de la version 02 JSF / Spring,
  • [mv-rdvmedecins-pfmobile] : la couche [web] de la version 05 Primefaces mobile / EJB,
  • en [2], nous les chargeons dans Netbeans,
  • en [3], les dépendances du projet web ne sont plus correctes :
  • les dépendances sur les couches [DAO], [JPA], [métier] doivent être changées pour cibler désormais les projets Spring ;
  • le serveur Glassfish fournissait les bibliothèques de JSF. Ce n'est plus le cas avec le serveur Tomcat. Il faut donc les ajouter aux dépendances.

Le projet [web] évolue comme suit :

Image non disponible

Le fichier [pom.xml] de la couche [web] a désormais les dépendances suivantes :

[pom.xml]
Cacher/Afficher le codeSélectionnez

Des erreurs apparaissent. Elles sont dues aux références EJB de la couche [web]. Etudions d'abord le bean [Application] :

Image non disponible

Nous enlevons toutes les lignes erronées à cause de paquetages manquants, nous renommons [IMetier] (c'est son nom dans la couche [métier] Spring) l'interface [IMetierLocal] et nous utilisons Spring pour l'instancier :

Application
Cacher/Afficher le codeSélectionnez
  • lignes 20-21 : instanciation de la couche [métier] à partir du fichier de configuration de Spring. Ce fichier est celui utilisé par la couche [métier] [1]. Nous le copions dans le projet web [2] :
    Image non disponible
  • lignes 22-31 : nous gérons une éventuelle exception et mémorisons sa pile dans le champ de la ligne 14.

Ceci fait, le bean [Application] n'a plus d'erreurs. Regardons maintenant le bean [Form] [1], [2] :

Image non disponible

Nous supprimons toutes les lignes erronées (import et annotations) à cause de paquetages manquants et renommons [IMetier] l'interface [ImetierLocal]. Cela suffit pour éliminer toutes les erreurs [3].

Image non disponible

Par ailleurs, il faut ajouter dans le code du bean [Form], le getter et le setter du champ

[Form]
Cacher/Afficher le codeSélectionnez

Certaines des annotations supprimées dans les beans [Application] et [Form] déclaraient les classes comme étant des beans avec une certaine portée. Désormais, cette configuration est faite dans le fichier [faces-config.xml] [4] suivant :

[faces-config.xml]
Cacher/Afficher le codeSélectionnez

Le portage est terminé. Nous pouvons tenter d'exécuter l'application web.

Image non disponible

Nous laissons le lecteur tester cette nouvelle application. Nous pouvons l'améliorer légèrement pour gérer le cas où l'initialisation du bean [Application] a échoué. On sait que dans ce cas, les champs suivants ont été initialisés :

 
Cacher/Afficher le codeSélectionnez

Ce cas peut être prévu dans la méthode init du bean [Form] :

 
Cacher/Afficher le codeSélectionnez
  • ligne 5 : si le bean [Application] s'est mal initialisé,
  • ligne 7 : on récupère la liste des erreurs,
  • ligne 9 : et on affiche la page d'erreur.

Ainsi, si on arrête le SGBD MySQL et qu'on relance l'application, on reçoit maintenant la page suivante :

Image non disponible

XI-B. Conclusion

Le portage de l'application Primefaces mobile/ EJB / Glassfish vers un environnement Primefaces mobile / Spring / Tomcat s'est révélé simple. Le problème de la fuite mémoire signalée dans l'étude de l'application JSF / Spring / Tomcat (paragraphe , page ) demeure. On le résoudra de la même façon.

XI-C. Tests avec Eclipse

Nous importons les projets Maven dans Eclipse [1] :

Image non disponible

Nous exécutons le projet web [2].

Image non disponible

Nous choisissons le serveur Tomcat [3]. La page d'accueil de l'application est alors affichée dans le navigateur interne d'Eclipse [4].

XI-D. Tests avec mobile

Pour tester l'application sur un mobile, on procèdera comme il a été indiqué au paragraphe , page . Voici des images de l'application :

Image non disponible
Image non disponible

précédentsommairesuivant

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2012 Serge Tahé. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.