210 likes | 414 Views
Présentation des frameworks pour Java EE. Tapestry (MVC) et JAXB (Persistance en XML). Christopher BIGOZZI, Raouda MCHAREK, Samir SADROUDINE. Sommaire. Pré-requis Tapestry JAXB Cas d’étude. Pré-requis. Connaissance de Java Connaissance des fondements du web (HTML,HTTP)
E N D
Présentation des frameworks pour Java EE Tapestry (MVC) et JAXB (Persistance en XML) Christopher BIGOZZI, Raouda MCHAREK, Samir SADROUDINE
Sommaire • Pré-requis • Tapestry • JAXB • Cas d’étude
Pré-requis • Connaissance de Java • Connaissance des fondements du web (HTML,HTTP) • Connaissance des technologies de J2EE (Servlet et balises personnalisées) • Connaissance des architectures des serveurs web
Tapestry • Qu’est-ce que Tapestry ? • Fonctionnalités de Tapestry • Avantages et inconvénients de Tapestry • Installation de Tapestry • 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énients • Avantages : • 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 Tapestry • 2 types de fichiers qui sont liés: • Logique (.java) : code métier de la page • Graphique (.tml ou .html) : vue de la page Accueil.tml Accueil.java
Fonctionnement accueil .tml <t:formt:id="loginForm"> <t:textfield t:value="message"/> <input type="submit" value="Submit"/> </t:form> accueil. java @OnEvent(value="submit", component="loginForm") voidonFormSubmit() { System.out.println("Handling formsubmission!"); }
t:validate=required • Spécification dans le fichier app.Property
JAXB (Java Architecture for XML Binding) • Qu’est-ce que JAXB ? • Installation de JAXB • Fonctionnement de JAXB • Avantages et inconvénients de JAXB • 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 JAXB • Data 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
1ière étape : création de classes • Création d’un .xsd • Lancer JAXB en utilisant eclipse • Création de n fichiers : • Des .java • Une fabrique, permet d’instancier les objets
2ième étape : Marshalling • Génération d’un fichier XML depuis des objets JAVA • Création d’un contexte et indication du package source JAXBContextjaxbContext=JAXBContext.newInstance(Projet.class); • Création d’un « marshaller » Marshallermarshaller=jaxbContext.createMarshaller(); • Génération du XML marshaller.marshal(projet, new FileOutputStream(emplacement)); • Le XML est crée
3ième étape : Unmarshalling • Génération des objets JAVA depuis un XML • Création d’un contexte et indication du package source JAXBContextjaxbContext=JAXBContext.newInstance(« Contacts_JAXB »); • Créer un « unmarshaller » sur le contexte Unmarshallerunmarshaller=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'origines • Reformatage 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 à trouver • On a pu travaillé notre anglais ;) • Prise en main difficile malgré la simplicité apparente d’utilisation