j2ee : framework wicket et jibx
DESCRIPTION
J2EE : Framework Wicket et JibX. Aurélien Lesage Florent Decaudin Jérémy Liebgott. Wicket. Présentation du Framework. - Utilisation très simple (évidente) - Basé sur des POJO (Plan Old Java Object) - Toutes les pages sont codées en Java à la manière de swing - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: J2EE : Framework Wicket et JibX](https://reader036.vdocuments.net/reader036/viewer/2022062410/5681650f550346895dd788af/html5/thumbnails/1.jpg)
1
J2EE : FRAMEWORKWICKET ET JIBX
Aurélien LesageFlorent DecaudinJérémy Liebgott
![Page 2: J2EE : Framework Wicket et JibX](https://reader036.vdocuments.net/reader036/viewer/2022062410/5681650f550346895dd788af/html5/thumbnails/2.jpg)
2
WicketPrésentation du Framework
- Utilisation très simple (évidente) - Basé sur des POJO (Plan Old Java Object) - Toutes les pages sont codées en Java à la manière de swing - N’abuse pas des fichiers de configuration XML
- Composants réutilisables et distribuables via des fichiers jar
- Sécurité - Code sécurisé par défaut - Toute la logique de développement se fait en Java - Possibilité d’intégrer la gestion de la sécurité Java (Java security)
![Page 3: J2EE : Framework Wicket et JibX](https://reader036.vdocuments.net/reader036/viewer/2022062410/5681650f550346895dd788af/html5/thumbnails/3.jpg)
3
WicketInstallation du Framework
Conteneur compatible JSP 2.0 (Tomcat 5.0 ou plus)Utilisation de Slf4j et Log4j (.jar)
Distribution Wicket 1.3.3 (.jar)
![Page 4: J2EE : Framework Wicket et JibX](https://reader036.vdocuments.net/reader036/viewer/2022062410/5681650f550346895dd788af/html5/thumbnails/4.jpg)
4
Allez au menu File > New et sélectionnez Dynamic Web Project:
Wicket : installation
![Page 5: J2EE : Framework Wicket et JibX](https://reader036.vdocuments.net/reader036/viewer/2022062410/5681650f550346895dd788af/html5/thumbnails/5.jpg)
5
Donc vous devriez finir avec un projet qui ressemble à ceci:
Dans eclipse, clic droit sur le projet, properties et Java Build Path, ce qui donne cette fenêtre:
Wicket : installation
![Page 6: J2EE : Framework Wicket et JibX](https://reader036.vdocuments.net/reader036/viewer/2022062410/5681650f550346895dd788af/html5/thumbnails/6.jpg)
6
Cliquez sur "Add External jars" et localiser le dossier lib dans le répertoire où vous avez décompressé Wicket, et sélectionnez les jars:Wicket-1.3.3.jarWicket-datetime1.3.3.jarWicket-extensions-1.3.3.jar
Wicket : installation
![Page 7: J2EE : Framework Wicket et JibX](https://reader036.vdocuments.net/reader036/viewer/2022062410/5681650f550346895dd788af/html5/thumbnails/7.jpg)
7
Il faut aussi ajouter les jars de slf4j et de log4j, donc, "Add External jars" encore une fois et localisez les jars suivants:log4j.jarslf4j-api.jarslf4j-log4j12.jar
Wicket : installation
![Page 8: J2EE : Framework Wicket et JibX](https://reader036.vdocuments.net/reader036/viewer/2022062410/5681650f550346895dd788af/html5/thumbnails/8.jpg)
8
Rendre les jars disponibles lors du runtime.
Dans properties et "J2EE Module Dependencies" :
Tout sélectionner
Wicket : installation
![Page 9: J2EE : Framework Wicket et JibX](https://reader036.vdocuments.net/reader036/viewer/2022062410/5681650f550346895dd788af/html5/thumbnails/9.jpg)
9
Wicket : fonctionnementDans le dossier source (src):
Une Class AnnuaireApplication.java dérivant de WebApplicationUne Class AnnuairePage.java dérivant de WebPageUne page web html AnnuairePage.html liée à AnnuairePage.java
![Page 10: J2EE : Framework Wicket et JibX](https://reader036.vdocuments.net/reader036/viewer/2022062410/5681650f550346895dd788af/html5/thumbnails/10.jpg)
10
Wicket : fonctionnementUne Class AnnuaireApplication.java dérivant de WebApplication
import org.apache.wicket.protocol.http.WebApplication;
public class AnnuaireApplication extends WebApplication{ public AnnuaireApplication() { } public Class getHomePage() { return AnnuairePage.class; }}
![Page 11: J2EE : Framework Wicket et JibX](https://reader036.vdocuments.net/reader036/viewer/2022062410/5681650f550346895dd788af/html5/thumbnails/11.jpg)
11
Wicket : fonctionnementUne Class AnnuairePage.java dérivant de WebPage
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.markup.html.basic.Label;import org.apache.wicket.markup.html.form.Form;import org.apache.wicket.markup.html.form.TextArea;import org.apache.wicket.markup.html.list.ListItem;import org.apache.wicket.markup.html.list.ListView;import org.apache.wicket.model.PropertyModel;import org.apache.wicket.markup.html.link.Link;
![Page 12: J2EE : Framework Wicket et JibX](https://reader036.vdocuments.net/reader036/viewer/2022062410/5681650f550346895dd788af/html5/thumbnails/12.jpg)
12
Wicket : fonctionnementUne Class AnnuairePage.java dérivant de WebPage
public final class AnnuairePage extends WebPage{
[…]
public AnnuairePage() {
[…]add(new FormulaireAjouterUtilisateur("formAjouterUtilisateur"));add(new Label("labelLogin", monUtilisateur.getLogin()));add(new TextArea("textFormLogin", new
PropertyModel(monUtilisateurTemporaire, "login"))); }}
![Page 13: J2EE : Framework Wicket et JibX](https://reader036.vdocuments.net/reader036/viewer/2022062410/5681650f550346895dd788af/html5/thumbnails/13.jpg)
13
Wicket : fonctionnementUne page web html AnnuairePage.html liée à AnnuairePage.java
<html><body><span wicket:id = "labelUtilisateurs">
<a href="" wicket:id="lienSupprimer">Supprimer</a><span wicket:id="labelLogin">Le login est affiche ici</span><span wicket:id="labelMotdepasse">Le mot de passe est affiche ici</span></span>
<form wicket:id = "formAjouterUtilisateur"><textarea wicket:id="textFormLogin">Login du nouvel utilisateur</textarea>
<textarea wicket:id="textFormMotdepasse">Mot de passe du nouvel utilisateur</textarea>
<input type="submit" value="Ajouter"/></form></body></html>
![Page 14: J2EE : Framework Wicket et JibX](https://reader036.vdocuments.net/reader036/viewer/2022062410/5681650f550346895dd788af/html5/thumbnails/14.jpg)
14
Wicket : ProblèmesPeu de documentationshttp://wicket.apache.org/http://blog.developpez.com/djo-mos/p5743/java/wicket/Fonctionnement similaire aux servlet et jsp:
Mais structures et syntaxes spécifiques à Wicket Difficultés au développement
Possibilités plus restreintes
![Page 15: J2EE : Framework Wicket et JibX](https://reader036.vdocuments.net/reader036/viewer/2022062410/5681650f550346895dd788af/html5/thumbnails/15.jpg)
15
JiBXPrésentation du Framework
- Flexibilité - Utiliser toute la structure des classes que vous voulez, tant que vous pouvez dire à JiBX la façon de le traduire vers et à partir de XML.
Performance - Découpage de fichier de classe et de techniques d'amélioration, JiBX laisser construire de haute performance de triage et code directement dans vos classes. C’est le programmeur qui donne le lien entre le schéma XML et ses propres classes Java Pratique lorsqu'on utilise des classes déjà existantes. Un peu plus lourd à mettre en place
![Page 16: J2EE : Framework Wicket et JibX](https://reader036.vdocuments.net/reader036/viewer/2022062410/5681650f550346895dd788af/html5/thumbnails/16.jpg)
16
JiBX : installationJiBXEclipse
Ajouter l’add-on
http://jibx.sourceforge.net/eclipse/
Activer le plug-in
Paramétrer le plug-in
![Page 17: J2EE : Framework Wicket et JibX](https://reader036.vdocuments.net/reader036/viewer/2022062410/5681650f550346895dd788af/html5/thumbnails/17.jpg)
17
JiBX : installationJiBXEclipse
![Page 18: J2EE : Framework Wicket et JibX](https://reader036.vdocuments.net/reader036/viewer/2022062410/5681650f550346895dd788af/html5/thumbnails/18.jpg)
18
JiBX : installationJiBXEclipse
JiBX doMappings beginJiBX doMappings using these mapping files:
D:\cours_ing2\eclipse\wicket-jibx-annuaire\src\main\config\binding.xmlD:\cours_ing2\eclipse\wicket-jibx-annuaire\src\main\config\annuaire.xml
JiBX parseMappedClasses beginJiBX parseMappedClasses watching these mapped classes:
\wic ket-jibx-annuaire\build\classes\Annuaire.class\wicket-jibx-annuaire\build\classes\Utilisateur.class\wicket-jibx-annuaire\build\classes\Client.class
JiBX parseMappedClasses endJiBX doMappings endError running binding compiler
![Page 19: J2EE : Framework Wicket et JibX](https://reader036.vdocuments.net/reader036/viewer/2022062410/5681650f550346895dd788af/html5/thumbnails/19.jpg)
19
JiBX : installationJiBXLigne de commande
Pour installer JiBX, il suffit de télécharger l’archive de la distribution et de le dézipper (extraires tous les .jar et tous les dossiers contenant des .jar)
Cela crée un dossier contenant tous les fichiers de la distribution ainsi que la documentation.
![Page 20: J2EE : Framework Wicket et JibX](https://reader036.vdocuments.net/reader036/viewer/2022062410/5681650f550346895dd788af/html5/thumbnails/20.jpg)
20
JiBX: fonctionnementLigne de commande
Créer - - annuaire.xml- - annuaire.xsd
- Créer les classes java et du fichier binding.xml- -cp jibx-tools.jar org.jibx.schema.codegen.CodeGen annuaire.xsd
- Créer les fichiers jibx nécessaires a l’utilisation du fichier xml via java- java -jar jibx-bind.jar binding.xml
- - JiBX_bindingAnnuaire_access.class- - JiBX_bindingFactory.class- - JiBX_MungeAdapter.class
![Page 21: J2EE : Framework Wicket et JibX](https://reader036.vdocuments.net/reader036/viewer/2022062410/5681650f550346895dd788af/html5/thumbnails/21.jpg)
21
JiBX: fonctionnementExemple de binding
![Page 22: J2EE : Framework Wicket et JibX](https://reader036.vdocuments.net/reader036/viewer/2022062410/5681650f550346895dd788af/html5/thumbnails/22.jpg)
22
JiBX: fonctionnementCréer annuaireManager.java qui va nous permettre de contrôler toutes les données.
[…]
IBindingFactory bfactA = BindingDirectory.getFactory(Annuaire.class);IUnmarshallingContext = bfactA.createUnmarshallingContext();Object obj = uctxA.unmarshalDocument (new FileInputStream("annuaire.xml"), null); this.annuaireObject = (Annuaire)obj; int nb = (this.annuaireObject.getUtilisateurs().size());this.annuaireObject.setVersion("037"); this.mctx = bfactA.createMarshallingContext();mctx.setIndent(4);mctx.marshalDocument(obj, "UTF-8", null,new FileOutputStream("annuaire.xml"));
![Page 23: J2EE : Framework Wicket et JibX](https://reader036.vdocuments.net/reader036/viewer/2022062410/5681650f550346895dd788af/html5/thumbnails/23.jpg)
23
JiBX: problèmesManque de documentationhttp://dev-technomind.blogspot.com/2008/10/jibx-step-by-step-tutorial.html
Ne marche pas sous Eclipse Tout en ligne de commande (lourd et long)
Problèmes d’import, et de compréhension des liens entre les classes
![Page 24: J2EE : Framework Wicket et JibX](https://reader036.vdocuments.net/reader036/viewer/2022062410/5681650f550346895dd788af/html5/thumbnails/24.jpg)
24
Wicket et JiBXIncompatibilité entre Eclipse et ligne de commande:
.class générés différents .class générés présents dans build/classes et WEB-INF/lib
System.out.println(System.getProperty("wtp.deploy")); batch pour les .class
annuaire.xml présent dans le dossier d’installation de Eclipse Filemon
Compatibilité (ou incompatibilité)
![Page 25: J2EE : Framework Wicket et JibX](https://reader036.vdocuments.net/reader036/viewer/2022062410/5681650f550346895dd788af/html5/thumbnails/25.jpg)
25
DémonstrationCréer un nouveau « Web Dynamic Project » dans Eclipse
- Créer un nouveau "Web Dynamic Project"- Saisissez wicket-jibx-annuaire en nom de projet- Importer le projet wicket-jibx-annuaire (wicket-jibx-annuaire.zip) en tant qu'archive (Fichier -> Importer -> General -> Archive file)(l'importer dans le nouveau projet existant "wicket-jibx-annuaire"- Le projet est maintenant importé avec la distribution wicket, slf4j et log4j- Exécuter le projet sur un serveur TomCat- Fermer le serveur- Importer les librairies jibx (présentes dans le dossier lib de jibx_1_2_1.zip) dans le dossier WEB-INF/libet dans le répertoire jibx du projet - Copier le fichier annuaire.xml dans le dossier d'installation de Eclipse- Ouvrir l'explorateur de fichiers et aller dans le dossier jibx (a la racine du projet) et exécuter le fichier .bat- Lancer le serveur et exécuter le projet
Et cela fonctionne!
Tutorial