Tapestry (MVC) et JAXB (Persistance en XML) Christopher BIGOZZI, Raouda MCHAREK, Samir SADROUDINE

Preview:

Citation preview

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