jee approfondi frameworks : maverick (mvc) jibx (persistance xml) boutin benoit, jean simon, luit...
TRANSCRIPT
![Page 1: JEE Approfondi Frameworks : Maverick (MVC) JiBX (Persistance XML) Boutin Benoit, Jean Simon, Luit Dimitri](https://reader034.vdocuments.site/reader034/viewer/2022051515/551d9d81497959293b8ba4c0/html5/thumbnails/1.jpg)
JEE Approfondi
Frameworks :Maverick (MVC)
JiBX (Persistance XML)
Boutin Benoit, Jean Simon, Luit Dimitri
![Page 2: JEE Approfondi Frameworks : Maverick (MVC) JiBX (Persistance XML) Boutin Benoit, Jean Simon, Luit Dimitri](https://reader034.vdocuments.site/reader034/viewer/2022051515/551d9d81497959293b8ba4c0/html5/thumbnails/2.jpg)
Maverick
Avantages : Simple à utiliser (1 seul fichier xml pour gérer les
vues et les commandes) Permet d'utiliser des technologies de transformation
![Page 3: JEE Approfondi Frameworks : Maverick (MVC) JiBX (Persistance XML) Boutin Benoit, Jean Simon, Luit Dimitri](https://reader034.vdocuments.site/reader034/viewer/2022051515/551d9d81497959293b8ba4c0/html5/thumbnails/3.jpg)
Maverick
Inconvénients : Abandonné depuis plusieurs années par les
développeurs Peu de ressources sur Internet Pas de « vrai » tutorial Pas de gestion complexe des vues et des
controleurs Compatibilité
![Page 4: JEE Approfondi Frameworks : Maverick (MVC) JiBX (Persistance XML) Boutin Benoit, Jean Simon, Luit Dimitri](https://reader034.vdocuments.site/reader034/viewer/2022051515/551d9d81497959293b8ba4c0/html5/thumbnails/4.jpg)
Mise en place de MaverickFichier web.xml :
<servlet> <display-name>Maverick Dispatcher</display-name> <servlet-name>dispatcher</servlet-name> <servlet-lass> org.infohazard.maverick.Dispatcher </servlet-class> <init-param> <!-- Optionnel --> <param-name>reloadCommand</param-name> <param-value>reload</param-value> </init-param> <load-on-startup>2</load-on-startup></servlet><servlet-mapping> <servlet-name>dispatcher</servlet-name> <url-pattern>*.m</url-pattern></servlet-mapping>
![Page 5: JEE Approfondi Frameworks : Maverick (MVC) JiBX (Persistance XML) Boutin Benoit, Jean Simon, Luit Dimitri](https://reader034.vdocuments.site/reader034/viewer/2022051515/551d9d81497959293b8ba4c0/html5/thumbnails/5.jpg)
Mise en place de Maverick
Fichier maverick.xml :<?xml version="1.0" encoding="UTF-8"?><maverick version="2.0" default-view-type="document" default-transform-
type="document">
<views><view id="test" path="test.jsp" /><view id="test2" path="test2.jsp" />
</views>
<commands><command name="identifier">
<controller class="controller.IdentificationController" />
<view name="utilisateur" path="accueil.jsp"><transform path="generalInterieur.jsp" />
</view><view name="administrateur" path="accueilAdmin.jsp">
<transform path="adminInterieur.jsp" /></view><view name="error" path="erreur.jsp">
<transform path="generalExterieur.jsp" /></view>
</command></commands>
![Page 6: JEE Approfondi Frameworks : Maverick (MVC) JiBX (Persistance XML) Boutin Benoit, Jean Simon, Luit Dimitri](https://reader034.vdocuments.site/reader034/viewer/2022051515/551d9d81497959293b8ba4c0/html5/thumbnails/6.jpg)
Mise en place de Maverick
Ajouter maverick.jar dans lib de WEB-INF. Ajouter jdom.jar dans lib de WEB-INF. Ajouter commons-logging-1.0.3 dans lib de
WEB-INF. Ajouter maverick.xml dans WEB-INF.
![Page 7: JEE Approfondi Frameworks : Maverick (MVC) JiBX (Persistance XML) Boutin Benoit, Jean Simon, Luit Dimitri](https://reader034.vdocuments.site/reader034/viewer/2022051515/551d9d81497959293b8ba4c0/html5/thumbnails/7.jpg)
Avant d'utiliser Maverick
L'objet Dispatcher gère les appels aux commandes Pour utiliser une commande, il faut la suffixer avec .m Pour les transformations de jsp. Si l'on utilise la
directive : <c:out value="${wrapped}" escapeXml="false" />.
Modifier la valeur de version dans web.xml à la valeur 2.3. Sinon erreur du fichier tld.
Selon les utilisations, il peut être necessaire d'utiliser les jar suivants : commons-logging-1.0.3.jar, jdom.jar commons-beanutils.jar, commons-collections.jar.
![Page 8: JEE Approfondi Frameworks : Maverick (MVC) JiBX (Persistance XML) Boutin Benoit, Jean Simon, Luit Dimitri](https://reader034.vdocuments.site/reader034/viewer/2022051515/551d9d81497959293b8ba4c0/html5/thumbnails/8.jpg)
JiBX
Avantages Permet de passer du java au xml et inversement
facilement une fois installé Performant Documentation suffisante
![Page 9: JEE Approfondi Frameworks : Maverick (MVC) JiBX (Persistance XML) Boutin Benoit, Jean Simon, Luit Dimitri](https://reader034.vdocuments.site/reader034/viewer/2022051515/551d9d81497959293b8ba4c0/html5/thumbnails/9.jpg)
JiBX
Inconvénients Difficultés d'installation Modification des classes implique de refaire le
binding.
![Page 10: JEE Approfondi Frameworks : Maverick (MVC) JiBX (Persistance XML) Boutin Benoit, Jean Simon, Luit Dimitri](https://reader034.vdocuments.site/reader034/viewer/2022051515/551d9d81497959293b8ba4c0/html5/thumbnails/10.jpg)
JiBX
Fonctionnement en 2 phases : Binding :
Génération des fichiers .java et du fichier binding.xml à partir d'un schéma xml.
Runtime : Instanciation des objets Java à partir d'un fichier xml. Création d'un fichier xml à partir des informations des
objets Java.
![Page 11: JEE Approfondi Frameworks : Maverick (MVC) JiBX (Persistance XML) Boutin Benoit, Jean Simon, Luit Dimitri](https://reader034.vdocuments.site/reader034/viewer/2022051515/551d9d81497959293b8ba4c0/html5/thumbnails/11.jpg)
Mise en place de JiBX
Plugin Eclipse (difficulté à comprendre l'utilisation)
Utilisation de JiBX depuis le zip téléchargé
![Page 12: JEE Approfondi Frameworks : Maverick (MVC) JiBX (Persistance XML) Boutin Benoit, Jean Simon, Luit Dimitri](https://reader034.vdocuments.site/reader034/viewer/2022051515/551d9d81497959293b8ba4c0/html5/thumbnails/12.jpg)
Mise en place de JiBX
Créer un fichier xsd. Commande
java -cp jibx-tools.jar org.jibx.schema.codegen.CodeGen fichier.xsd crée les classes Java et binding.xml
javac *.java compile les classes générées. java -jar jibx-bind.jar binding.xml crée les .class
nécessaire au fonctionnement de JiBX en Runtime. On peut maintenant utiliser le Runtime.
![Page 13: JEE Approfondi Frameworks : Maverick (MVC) JiBX (Persistance XML) Boutin Benoit, Jean Simon, Luit Dimitri](https://reader034.vdocuments.site/reader034/viewer/2022051515/551d9d81497959293b8ba4c0/html5/thumbnails/13.jpg)
Mise en place de JiBX
public class Customer { public Person person; public String street; public String city; public String state; public Integer zip; public String phone; }
public class Person { public int
customerNumber; public String firstName; public String lastName; }
![Page 14: JEE Approfondi Frameworks : Maverick (MVC) JiBX (Persistance XML) Boutin Benoit, Jean Simon, Luit Dimitri](https://reader034.vdocuments.site/reader034/viewer/2022051515/551d9d81497959293b8ba4c0/html5/thumbnails/14.jpg)
Mise en place de JiBX Binding.xml : <?xml version="1.0" encoding="UTF-8"?> <binding> <mapping name="customer" class="Customer"> <structure name="person" field="person"> <value name="cust-num" field="customerNumber"/> <value name="first-name" field="firstName" /> <value name="last-name" field="lastName" /> </structure> <value name="street" field="street" /> <value name="city" field="city" /> <value name="state" field="state" /> <value name="zip" field="zip" /> <value name="phone" field="phone" /> </mapping> </binding>
![Page 15: JEE Approfondi Frameworks : Maverick (MVC) JiBX (Persistance XML) Boutin Benoit, Jean Simon, Luit Dimitri](https://reader034.vdocuments.site/reader034/viewer/2022051515/551d9d81497959293b8ba4c0/html5/thumbnails/15.jpg)
Mise en place de JiBX
Fichier utilisé au lancement : <?xml version="1.0" encoding="UTF-8"?> <customer> <person> <cust-num>123456789</cust-num> <first-name>John</first-name> <last-name>Smith</last-name> </person> <street>12345 Happy Lane</street> <city>Plunk</city> <state>WA</state> <zip>98059</zip> <phone>888.555.1234</phone> </customer>
![Page 16: JEE Approfondi Frameworks : Maverick (MVC) JiBX (Persistance XML) Boutin Benoit, Jean Simon, Luit Dimitri](https://reader034.vdocuments.site/reader034/viewer/2022051515/551d9d81497959293b8ba4c0/html5/thumbnails/16.jpg)
Avant d'utiliser JiBX
Sans le plugin Eclipse : peu pratique. Erreurs particulières :
Cannot cast from java.util.List<Utilisateur> to java.util.List<Utilisateur>
Obliger de passer par un objet intermédiaire. Constaté lors de l'utilisation d'ArrayList.