JEE Approfondi

Post on 09-Jan-2016

64 views 4 download

description

Frameworks : Maverick (MVC) JiBX (Persistance XML) Boutin Benoit, Jean Simon, Luit Dimitri. JEE Approfondi. Maverick. Avantages : Simple à utiliser (1 seul fichier xml pour gérer les vues et les commandes) Permet d'utiliser des technologies de transformation. Maverick. Inconvénients : - PowerPoint PPT Presentation

Transcript of JEE Approfondi

JEE Approfondi

Frameworks :Maverick (MVC)

JiBX (Persistance XML)

Boutin Benoit, Jean Simon, Luit Dimitri

Maverick

Avantages : Simple à utiliser (1 seul fichier xml pour gérer les

vues et les commandes) Permet d'utiliser des technologies de transformation

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é

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>

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>

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.

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.

JiBX

Avantages Permet de passer du java au xml et inversement

facilement une fois installé Performant Documentation suffisante

JiBX

Inconvénients Difficultés d'installation Modification des classes implique de refaire le

binding.

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.

Mise en place de JiBX

Plugin Eclipse (difficulté à comprendre l'utilisation)

Utilisation de JiBX depuis le zip téléchargé

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.

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; }

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>

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>

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.