tapestry (mvc) et jaxb (persistance en xml) christopher bigozzi, raouda mcharek, samir sadroudine
TRANSCRIPT
Présentation des frameworks pour Java EE
Tapestry (MVC) et JAXB (Persistance en XML)
Christopher BIGOZZI, Raouda MCHAREK, Samir SADROUDINE
Sommaire
I. Pré-requisII. TapestryIII. JAXBIV. Cas d’étude
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
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
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/
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.
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
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
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!");}
• t:validate=required
• Spécification dans le fichier app.Property
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
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
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.
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
Fonctionnement général
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
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
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);
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
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
CONCLUSION
Documentation difficile à trouverOn a pu travaillé notre anglais ;)Prise en main difficile malgré la simplicité
apparente d’utilisation