Quelques remarques, conseils et consignes de la part des enseignants (page à consulter régulièrement)

Les archives complètes de l'an dernier sont disponibles à l'adresse suivante : http://sardes.inrialpes.fr/~boyer/cours/EJB/WEB-0607/notes.htm


03/12 : Planning des soutenances système

En ligne (avec les consignes) à l'adresse suivante :
http://sardes.inrialpes.fr/~boyer/cours/EJB/WEB/planningSoutenanceEcomGI0708.htm


29/11 : Planning de la dernière semaine du projet

Un enseignant sera présent en salle chaque jour (matin et après-midi) du lundi (3/12) au jeudi (4/12) pour vous aider sur la partie système.
 
Les soutenances IHM aura lieu jeudi 6/12 et le vendredi 7/12. Consulter la page de François Bérard pour réserver un créneau de soutenance.
http://brouet.imag.fr/fberard/pmwiki.php?n=M2PGIECOM.Soutenances

Les soutenances pour la partie "système" auront lieu le vendredi 7/12.
La liste des créneaux horaires vous sera communiquée lundi 3/12 au plus tard sur cette page.


29/11 : Dossier de conception système

A rendre aujourd'hui (jeudi 29 novembre) sous forme électronique (format PDF de préférence), par email à renaud.lachaize <at> imag.fr
utiliser de préférence la convention de nommage suivante : ecom_dossier_conception_systeme_20071129-gXX

Il n'est pas obligatoire de nous faire parvenir un exemplaire papier du dossier.


22/11 : Déploiement des webapps

Plutôt que d'utiliser la console graphique de Jonas pour gérer le déploiement d'une application web, vous pouvez également utiliser les commandes suivantes :
pour le déploiement : jonas admin -a my_app.war
pour l'opération contraire : jonas admin -r my_app.war

Et il est bien sûr possible d'intégrer ces commandes sous forme de tâches Ant.
Exemple (incomplet) :

<target name="undeploy_myapp"
depends="undeploy_myapp_unix,undeploy_myapp_windows"/>

<target name="undeploy_myapp_unix" if="unix.ear.exist">
<exec executable="${jonas.root}/bin/unix/jonas">
<arg value="admin"/>
<arg value="-r"/>
<arg value="myapp.war"/>
<env key="JAVA_HOME" path="${java.home}"/>
<env key="JAVA_ROOT" path="${java.root}"/>
</exec>
</target>

<target name="undeploy_myapp_windows" if="windows.ear.exist">
<exec executable="${jonas.root}\bin\nt\jonas.bat">
<arg value="admin"/>
<arg value="-r"/>
<arg value="myapp.war"/>
<env key="JAVA_HOME" path="${java.home}"/>
<env key="JAVA_ROOT" path="${java.root}"/>
</exec>
</target>


22/11 : Audits IHM

Suite à la poursuite du blocage de l'UFR, les audits IHM auront lieu dans le bâtiment B du LIG.
Les détails sont sur la page de François Bérard :
http://brouet.imag.fr/fberard/pmwiki.php?n=M2PGIECOM.M2PGIECOM


26/10 : Consignes pour EcomV1

Pendant la séance du 8 novembre, vous devrez faire une brève démonstration de votre prototype EcomV1.
Après la démonstration, vous devrez envoyer une archive (tar.gz ou zip) de vos sources en suivant le format de nommage suivant :
ecomv1-gXX-20071108 (par exemple : ecomV1-g05-20071108.zip pour le groupe n°5).
Cette archive contiendra un fichier "readme" avec les (brèves) informations suivantes :
- liste des fonctionnalités implantées et de ce qui a été validé
- si vous avez apporté des modifications à la trame fournie, précisez la marche à suivre pour la compilation et le déploiement/lancement du prototype
 
Cette archive devra être envoyée à Renaud Lachaize (prenom.nom @imag.fr) avant le 9 novembre 2007.

26/10 : Gestion de la persistance

De nombreux groupes ont rencontré des problèmes lors de la mise en oeuvre de la persistance dans leur prototype EcomV1.
Voici quelques indications pour vous aider :

1) Editer et ajouter un fichier persistence.xml dans ecom/etc

2) Dans ecom/build.xml :

    a) Ajouter la propriété suivante :
        <!-- persistence xml file is defined -->
        <available file="${xml.dir}/persistence.xml" property="persisitence.defined"/>

    b) Ajouter une ligne à la tâche clean pour nettoyer le répertoire indiquant les fichiers à déployer à Jonas :
        <delete dir="${jonas.root}/deploy/${ejb.name}.jar"/>

3) Pour chaque Entity bean :
        - annoter la classe avec @Entity
        - définir les méthodes getter/setter pour les attributs
        - spécifier la clé primaire via une annotation @Id sur la méthode getter (ou sur l'attribut)

Un exemple plus détaillé est disponible dans la FAQ de l'an dernier (cf URL des archives ci-dessus)       

19/10 : Problèmes avec HSQLDB

Certains problèmes de cohérence de la BD ont été observés (notamment avec l'exemple javaee-earsample).
Nous essayons actuellement d'isoler et de corriger le problème, qui semble être lié à la BD intégrée par défaut (HSQLDB).
Une solution pour contourner le problème est d'utiliser une autre base de données. La procédure détaillée pour l'installation de la BD McKoi est décrite ci-dessous.


19/10 : Remplacer HSQLDB par McKoi

Voici la procédure à suivre pour remplacer la base de données par défaut (HSQLDB) par une autre (McKoi).

1) Récupérer la base de données McKoi à l'adresse suivante : http://www.mckoi.com/database/ver/mckoi1.0.3.zip

2) Installer McKoi :

    a) Extraire l'archive zip

    b) Créer la base en lançant la commande suivante epuis le répertoire mckoi :
            java -jar mckoidb.jar -create "ecom" "ecom"

3) Modifier la configuration de Jonas
   
    a) Dans le fichier JONAS_5_0_M1/conf/jonas.properties, remplacer la ligne :

            jonas.service.dbm.datasources    HSQL1

         par la ligne suivante :

             jonas.service.dbm.datasources    McKoi1

    b) Dans le fichier JONAS_5_0_M1/conf/McKoi1.properties, spécifier la configuration suivante :
           
            datasource.name           jdbc_1
            datasource.url               jdbc:mckoi://localhost     #Adresse du serveur McKoi
            datasource.classname    com.mckoi.JDBCDriver
            datasource.username     ecom
            datasource.password     ecom
            datasource.mapper        rdb.mckoi

    c) créer le répertoire JONAS_5_0_M1/lib/commons/jonas/mckoi et copier dedans le fichier mkjdbc.jar

4) Dans le répertoire "etc" de l'application concernée, modifier ou créer le fichier persistence.xml.
     Par exemple, pour l'application javaee-earsample, il s'agit du fichier JONAS_5_0_M1/examples/javaee-earsample/etc/persistence.xml
     Il faut modifier le dialecte à utiliser.
     Exemple complet de contenu :

            <?xml version="1.0" encoding="UTF-8"?>
            <persistence xmlns="http://java.sun.com/xml/ns/persistence" version="1.0">
            <persistence-unit name="entity">
               <provider></provider>
               <jta-data-source>jdbc_1</jta-data-source>
               <properties>
                  <property name="hibernate.dialect" value="org.hibernate.dialect.MckoiDialect" />
                  <property name="hibernate.hbm2ddl.auto" value="create-drop"/>
               </properties>
            </persistence-unit>
            </persistence>

    Ne pas oublier de relancer "ant install" une fois les modification effectuées.

L'installation proprement dite est maintenant terminée. Il reste néanmoins quelques point importants.

6) Penser à lancer la base de données AVANT le démarrage de Jonas.
Pour lancer McKoi (depuis le répertoire mckoi) : java -jar mckoidb.jar

7) Eviter d'utiliser l'interface graphique de McKoi (JDBCQueryTool), peu conviviale et qui semble poser problème.
Vous pouvez continuer à utiliser l'interface graphique fournie par HSQLDB en modifiant les paramètres de connexion.
Exemple sous Linux :
java -cp $JONAS_ROOT/lib/commons/jonas/hsqldb.jar:$JONAS_ROOT/lib/commons/jonas/ mckoi/mkjdbc.jar org.hsqldb.util.DatabaseManagerSwing --driver com.mckoi.JDBCDriver --url jdbc:mckoi://localhost:9157/db_jonas --user ecom --password ecom


19/10 : Intégration du projet sous Eclipse

Vous trouverez quelques indications pour vous aider à intégrer le proje Ecom à l'environnement Eclipse dans le document suivant : eclipse.pdf.


11/10 : Consignes pour la version 1 du projet Ecom en M2PGI

 Rappel : une première version de l'application ecom (client java uniquement, ensemble restreint de fonctionnalités mais avec une intégration de bout en bout, du client à la BD) devra être présentée et rendue lors de la séance du 25 octobre. Si nécessaire pour certains groupes, une autre étape de validation de cette première phase sera ajoutée lors de la séance du 8 novembre.


10/10 : Livres gratuits sur les EJB

Mastering EJB 3.0 et EJB Design Patterns

Disponibles sur theserverside.com (inscription gratuite requise) :

http://www.theserverside.com/tt/books/wiley/masteringEJB3/index.tss

http://www.theserverside.com/books/wiley/EJBDesignPatterns/index.tss

  


10/10 : Ressources sur les  EJB

En plus des cours de Fabienne Boyer (ici) et Pierre-Yves Gibello (ici), vous pouvez également consulter les transparents de Lionel Seinturier sur JavaEE et les EJB3.

Si vous vous posez encore des questions sur le rôle des sessions beans et sur la différence entre stateful et stateless session beans, vous pouvez regarder ces explications sur le site de Sun.
Plus généralement, ce (très gros) tutorial a aussi d’autres sections intéressantes, notamment sur les interfaces local/remote, la persistance et les transactions (voir parties III et IV).
 


10/10 : Front-end pour la BD

Une petite application d'administration/visualisation (HSQL Database Manager) est fournie avec HSQLDB (intégrée à Jonas).
Pour la lancer :
sous Windows : java -cp %JONAS_ROOT%\lib\commons\jonas\hsqldb.jar org.hsqldb.util.DatabaseManagerSwing

sous Linux :  java -cp $JONAS_ROOT/lib/commons/jonas/hsqldb.jar org.hsqldb.util.DatabaseManagerSwing

Et utiliser les paramètres suivants pour la connexion (vous pouvez éventuellement passer ces paramètres en ligne de commande pour gagner du temps, utiliser la commande ci-dessus avec l'option --help pour connaître la syntaxe précise) :
Driver: org.hsqldb.jdbcDriver
URL: jdbc:hsqldb:hsql://localhost:9001/db_jonas
User: jonas
Password: jonas

Une autre application du même type : DbVisualizer