tapestry (mvc) et jaxb (persistance en xml) christopher bigozzi, raouda mcharek, samir sadroudine
TRANSCRIPT
![Page 1: Tapestry (MVC) et JAXB (Persistance en XML) Christopher BIGOZZI, Raouda MCHAREK, Samir SADROUDINE](https://reader033.vdocuments.site/reader033/viewer/2022051400/551d9d90497959293b8c6411/html5/thumbnails/1.jpg)
Présentation des frameworks pour Java EE
Tapestry (MVC) et JAXB (Persistance en XML)
Christopher BIGOZZI, Raouda MCHAREK, Samir SADROUDINE
![Page 2: Tapestry (MVC) et JAXB (Persistance en XML) Christopher BIGOZZI, Raouda MCHAREK, Samir SADROUDINE](https://reader033.vdocuments.site/reader033/viewer/2022051400/551d9d90497959293b8c6411/html5/thumbnails/2.jpg)
Sommaire
I. Pré-requisII. TapestryIII. JAXBIV. Cas d’étude
![Page 3: Tapestry (MVC) et JAXB (Persistance en XML) Christopher BIGOZZI, Raouda MCHAREK, Samir SADROUDINE](https://reader033.vdocuments.site/reader033/viewer/2022051400/551d9d90497959293b8c6411/html5/thumbnails/3.jpg)
Pré-requis
Connaissance de JavaConnaissance des fondements du web
(HTML,HTTP)Connaissance des technologies de J2EE
(Servlet et balises personnalisées)Connaissance des architectures des serveurs
web
![Page 4: Tapestry (MVC) et JAXB (Persistance en XML) Christopher BIGOZZI, Raouda MCHAREK, Samir SADROUDINE](https://reader033.vdocuments.site/reader033/viewer/2022051400/551d9d90497959293b8c6411/html5/thumbnails/4.jpg)
Tapestry
1) Qu’est-ce que Tapestry ?2) Fonctionnalités de Tapestry3) Avantages et inconvénients de Tapestry 4) Installation de Tapestry5) Application de Tapestry
![Page 5: Tapestry (MVC) et JAXB (Persistance en XML) Christopher BIGOZZI, Raouda MCHAREK, Samir SADROUDINE](https://reader033.vdocuments.site/reader033/viewer/2022051400/551d9d90497959293b8c6411/html5/thumbnails/5.jpg)
Qu’est-ce que Tapestry?utilisation XML pour implémenter des
applications Web en suivant le motif de conception MVC
projet intégré par la fondation Apache comme sous-projet Jakarta..
http://tapestry.apache.org/
![Page 6: Tapestry (MVC) et JAXB (Persistance en XML) Christopher BIGOZZI, Raouda MCHAREK, Samir SADROUDINE](https://reader033.vdocuments.site/reader033/viewer/2022051400/551d9d90497959293b8c6411/html5/thumbnails/6.jpg)
Avantages et inconvénientsAvantages :
Rapidité de développement, configuration minimale et URLs claires Prise en charge de nombreuses problématiques permettant au
développeur de se concentrer sur la partie métier Séparation complète de la présentation HTML du code Java Souplesse d’utilisation (développement de ses propres composants) Facilité d’intégration avec Hibernate et Spring.
Inconvénients : Absence de mapping relationnel spécifique : il faut utiliser JDBC ou
Hibernate Masquage de nombreux mécanismes web Manque de maturité (composants incomplets, communauté limitée,
documentation et tutoriaux insuffisants). Pas de rétro-compatibilité avec la version 4.
![Page 7: Tapestry (MVC) et JAXB (Persistance en XML) Christopher BIGOZZI, Raouda MCHAREK, Samir SADROUDINE](https://reader033.vdocuments.site/reader033/viewer/2022051400/551d9d90497959293b8c6411/html5/thumbnails/7.jpg)
Installation de Tapestry
Tapestry n’est pas un simple plugin de Eclipse, mais une librairie qu’il faut configurer
Il suffit de mettre les .jar dans le dossier : WEB-INF/lib
![Page 8: Tapestry (MVC) et JAXB (Persistance en XML) Christopher BIGOZZI, Raouda MCHAREK, Samir SADROUDINE](https://reader033.vdocuments.site/reader033/viewer/2022051400/551d9d90497959293b8c6411/html5/thumbnails/8.jpg)
Application de Tapestry2 types de fichiers qui sont liés:
Logique (.java) : code métier de la page Graphique (.tml ou .html) : vue de la page
Accueil.java Accueil.tml
![Page 9: Tapestry (MVC) et JAXB (Persistance en XML) Christopher BIGOZZI, Raouda MCHAREK, Samir SADROUDINE](https://reader033.vdocuments.site/reader033/viewer/2022051400/551d9d90497959293b8c6411/html5/thumbnails/9.jpg)
Fonctionnement accueil .tml
<t:form t:id="loginForm"><t:textfield t:value="message"/><input type="submit" value="Submit"/>
</t:form>
accueil. java@OnEvent(value="submit", component="loginForm") void onFormSubmit() {
System.out.println("Handling form submission!");}
![Page 10: Tapestry (MVC) et JAXB (Persistance en XML) Christopher BIGOZZI, Raouda MCHAREK, Samir SADROUDINE](https://reader033.vdocuments.site/reader033/viewer/2022051400/551d9d90497959293b8c6411/html5/thumbnails/10.jpg)
• t:validate=required
• Spécification dans le fichier app.Property
![Page 11: Tapestry (MVC) et JAXB (Persistance en XML) Christopher BIGOZZI, Raouda MCHAREK, Samir SADROUDINE](https://reader033.vdocuments.site/reader033/viewer/2022051400/551d9d90497959293b8c6411/html5/thumbnails/11.jpg)
JAXB (Java Architecture for XML Binding)
1) Qu’est-ce que JAXB ?2) Installation de JAXB3) Fonctionnement de JAXB4) Avantages et inconvénients de JAXB5) Application de JAXB
![Page 12: Tapestry (MVC) et JAXB (Persistance en XML) Christopher BIGOZZI, Raouda MCHAREK, Samir SADROUDINE](https://reader033.vdocuments.site/reader033/viewer/2022051400/551d9d90497959293b8c6411/html5/thumbnails/12.jpg)
Qu’est-ce que JAXB ? librairie Java implémentée par SUN pour
générer du Code Java depuis un fichier XML et inversement
Site de référence: https://jaxb.dev.java.net/
API Java permettant de créer des classes Java à partir de Schémas (.XSD) et inversement
![Page 13: Tapestry (MVC) et JAXB (Persistance en XML) Christopher BIGOZZI, Raouda MCHAREK, Samir SADROUDINE](https://reader033.vdocuments.site/reader033/viewer/2022051400/551d9d90497959293b8c6411/html5/thumbnails/13.jpg)
Fonctionnalités de JAXBData Binding : automatiser la transformation d'un modèle
de données en un modèle de données objets dans un langage de programmation
3 étapes: Génération de classes Rassemblement des données Redistribution des données
Objectif final : mise en correspondance automatique entre une famille de documents XML et un schéma de classes Java.
![Page 14: Tapestry (MVC) et JAXB (Persistance en XML) Christopher BIGOZZI, Raouda MCHAREK, Samir SADROUDINE](https://reader033.vdocuments.site/reader033/viewer/2022051400/551d9d90497959293b8c6411/html5/thumbnails/14.jpg)
Installation de JAXB Installation du plugin XJC de Eclipse
Télécharger le plugin à cette adresse : https://jaxb-workshop.dev.java.net/plugins/eclipse/xjc-plugin.html
Le placer dans le dossier /plugins/ de Eclipse
Faire la commande ‘eclipse.exe - clean’ pour prendre en compte les nouveaux plugins
Créer un schéma fichier.xsd décrivant les données
Puis clic bouton-droit sur le fichier Normalement une nouvelle option est apparue : JAXB 2.0.
L’installation du plugin a été faite correctement
![Page 15: Tapestry (MVC) et JAXB (Persistance en XML) Christopher BIGOZZI, Raouda MCHAREK, Samir SADROUDINE](https://reader033.vdocuments.site/reader033/viewer/2022051400/551d9d90497959293b8c6411/html5/thumbnails/15.jpg)
Fonctionnement général
![Page 16: Tapestry (MVC) et JAXB (Persistance en XML) Christopher BIGOZZI, Raouda MCHAREK, Samir SADROUDINE](https://reader033.vdocuments.site/reader033/viewer/2022051400/551d9d90497959293b8c6411/html5/thumbnails/16.jpg)
1ière étape : création de classes
Création d’un .xsdLancer JAXB en
utilisant eclipse
Création de n fichiers :Des .javaUne fabrique,
permet d’instancier les objets
![Page 17: Tapestry (MVC) et JAXB (Persistance en XML) Christopher BIGOZZI, Raouda MCHAREK, Samir SADROUDINE](https://reader033.vdocuments.site/reader033/viewer/2022051400/551d9d90497959293b8c6411/html5/thumbnails/17.jpg)
2ième étape : Marshalling Génération d’un fichier
XML depuis des objets JAVACréation d’un contexte et
indication du package source
JAXBContext jaxbContext=JAXBContext.newInstance(Projet.class);
Création d’un « marshaller »Marshaller marshaller=jaxbContext.createMarshaller();
Génération du XMLmarshaller.marshal(projet, new FileOutputStream(emplacement));
Le XML est crée
![Page 18: Tapestry (MVC) et JAXB (Persistance en XML) Christopher BIGOZZI, Raouda MCHAREK, Samir SADROUDINE](https://reader033.vdocuments.site/reader033/viewer/2022051400/551d9d90497959293b8c6411/html5/thumbnails/18.jpg)
3ième étape : UnmarshallingGénération des objets JAVA
depuis un XMLCréation d’un contexte et
indication du package source
JAXBContext jaxbContext=JAXBContext.newInstance(« Contacts_JAXB »);
Créer un « unmarshaller » sur le contexte
Unmarshaller unmarshaller=jaxbContext.createUnmarshaller();
Création de l’objet Projet projet = (Projet)unmarshaller.unmarshal(emplacement);
![Page 19: Tapestry (MVC) et JAXB (Persistance en XML) Christopher BIGOZZI, Raouda MCHAREK, Samir SADROUDINE](https://reader033.vdocuments.site/reader033/viewer/2022051400/551d9d90497959293b8c6411/html5/thumbnails/19.jpg)
Avantages et inconvénients de JAXB Avantages :
Lire et écrire dans une vaste gamme de type d'entrée/sortie (Fichier, Flux, Noeud Dom ...etc...)
Facilité d'utilisation
Inconvénients : Utilisation d'annotations, ce qui oblige a altérer les
classes d'originesReformatage des classes pour avoir soit des
méthodes get/set annotées ou des variables annotées
![Page 20: Tapestry (MVC) et JAXB (Persistance en XML) Christopher BIGOZZI, Raouda MCHAREK, Samir SADROUDINE](https://reader033.vdocuments.site/reader033/viewer/2022051400/551d9d90497959293b8c6411/html5/thumbnails/20.jpg)
Comparaison avec d’autres Frameworks
Même utilisation que JAXP (SAX et DOM), mais niveau d’abstraction plus élevé, plus rapide
Nécessité d’installer des grosses librairies à l’inverse de Frameworks comme Castor
![Page 21: Tapestry (MVC) et JAXB (Persistance en XML) Christopher BIGOZZI, Raouda MCHAREK, Samir SADROUDINE](https://reader033.vdocuments.site/reader033/viewer/2022051400/551d9d90497959293b8c6411/html5/thumbnails/21.jpg)
CONCLUSION
Documentation difficile à trouverOn a pu travaillé notre anglais ;)Prise en main difficile malgré la simplicité
apparente d’utilisation