Gestion Bibliothèque. Résumé



Documents pareils
Compte Rendu d intégration d application

EXA1415 : Annotations

Guide d utilisation. Version 1.1

IFT287 Exploitation de base de données relationnelles et orientées objet. Laboratoire Mon premier programme Java en Eclipse

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

Création d une application JEE

Rapports d activités et financiers par Internet. Manuel Utilisateur

4. SERVICES WEB REST 46

Cliquez sur le site que vous souhaitez consulter, il s affichera directement dans le navigateur.

Optimiser pour les appareils mobiles

COMPRENDRE L ARCHITECTURE DES WEB SERVICES REST. Amosse EDOUARD, Doctorant

Création d un service web avec NetBeans 5.5 et SJAS 9

Administration du site (Back Office)

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Leica Geosystems Licences des logiciels Introduction & Installation

Programmation Web. Madalina Croitoru IUT Montpellier

Tutoriel d installation de Hibernate avec Eclipse

Utilisation de GCM (Google Cloud Messaging) pour Android. Partie préliminaire éventuelle : Création d'un AVD lisant GCM

Point sur les solutions de développement d apps pour les périphériques mobiles

Déploiement d'une application Visual Studio Lightswitch dans Windows Azure.

Placez vous au préalable à l endroit voulu dans l arborescence avant de cliquer sur l icône Nouveau Répertoire

Le stockage local de données en HTML5

Installation SQL Server 2005 Express sur le serveur

BR-Docs guide d applications mobile Android

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7

TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web.

FICHE 17 : CREER UN SITE WEB

À propos de votre liseuse... 5

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles

Cursus Sage ERP X3 Outils & Développement. Le parcours pédagogique Sage ERP X3 Outils et Développement

SYNC FRAMEWORK AVEC SQLITE POUR APPLICATIONS WINDOWS STORE (WINRT) ET WINDOWS PHONE 8

Guide d installation des licences Solid Edge-NB RB

COTISANT AU RÉGIME GUIDE D ACCÈS AU COMPTE

Introduction à Eclipse

Dossier Technique. Détail des modifications apportées à GRR. Détail des modifications apportées à GRR Le 17/07/2008. Page 1/10

La Clé informatique. Formation Internet Explorer Aide-mémoire

Configurer le Serveur avec une adresse IP Statique (INTERFACE :FastEthernet) : et un masque

BIRT (Business Intelligence and Reporting Tools)

Services bancaires par Internet aux entreprises. Guide pratique pour : Transfert de fichiers Version

Manuel logiciel client for Android

Mise en œuvre des serveurs d application

Guide d utilisation :application LIGHTIFY

Les pages suivantes présenteront : I. Le téléchargement et l installation du navigateur. II. L utilisation de Pep s à l aide de ce navigateur.

Etude de cas : PGE JEE V2

RECORD BANK RECORD BANK MOBILE

Gestion des documents avec ALFRESCO

Applications et Services WEB: Architecture REST

TigerPro CRM Application mobile

1. Installation d'un serveur d'application JBoss:

MANUEL D INSTALLATION Sous WINDOWS

COURS 5 Mettre son site en ligne! Exporter son site avec WordPress Duplicator Installer un logiciel FTP Faire le suivi des visites de son site avec

Refonte front-office / back-office - Architecture & Conception -

Universal Robots. Fiche Méthode : Installation du simulateur Polyscope

Configuration APN internet Réseau 3G «Terminaux et tablettes sous Android» Configuration APN «internet» sur système Android :

Technologies Web. Ludovic Denoyer Sylvain Lamprier Mohamed Amine Baazizi Gabriella Contardo Narcisse Nya. Université Pierre et Marie Curie

Mise en place de votre connexion à Etoile Accises via Internet sécurisé

Notice d installation et d utilisation du blog nomade avec un nouveau blog

Création d'un site dynamique en PHP avec Dreamweaver et MySQL

Application web de gestion de comptes en banques

Construire des plug-ins pour SAS Management Console SAS 9.1

Warren PAULUS. Android SDK et Android x86

Installation d un ordinateur avec reprise des données

Reporting Services - Administration

Le modèle de données

Architectures Web Services RESTful

CQP Développeur Nouvelles Technologies (DNT)

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki

CONTACT EXPRESS 2011 ASPIRATEUR D S

ESPACE COLLABORATIF SHAREPOINT

Comment configurer IPhone App Zoiper,pour se connecter au serveur VOIP de Kavkom?

Le Client/Serveur avec Enterprise Miner version 4

RAPPORT DE CONCEPTION UML :

GUIDE ISAN: 7 Création d un ISAN In-Dev 1

Services bancaires par Internet aux entreprises. Guide pratique pour : Rapports de solde Version

Configuration O.box Table des matières

Présentation de la plateforme WINDCHILL. Invitation à rejoindre la plateforme

Guide d utilisation du portail de formation en ligne LeCampus.com à l attention des partenaires de l APSM

Architecture Orientée Service, JSON et API REST

Guide d installation CLX.PayMaker Office (3PC)

Java pour le Web. Cours Java - F. Michel

Installation d'une galerie photos Piwigo sous Microsoft Windows.

Bien architecturer une application REST

Formation Webase 5. Formation Webase 5. Ses secrets, de l architecture MVC à l application Web. Adrien Grand <jpountz@via.ecp.fr> Centrale Réseaux

Cahier Technique. «Développer une application intranet pour la gestion des stages des étudiants» Antonin AILLET. Remi DEVES

MODE D EMPLOI DU MODULE D E-COMMERCE

Sage CRM. Sage CRM 7.3 Guide du portable

I / La démarche à suivre pour l installation de l application-crm

2. Pour accéder au Prêt numérique, écrivez dans la barre d adresse de votre navigateur Web.

OCLOUD BACKUP GUIDE DE REFERENCE POUR ANDROID

Première coupe : Introduction à la plateforme Java EE JAVA JAVA. Introduction à la plateforme Java EE. Introduction à la plateforme Java EE

Notice d utilisation Windows

Securitoo Mobile guide d installation

TUTORIEL: INSTALLATION D'UN SERVEUR LOCAL SOUS WINDOWS 7 POUR APPINVENTOR version du 06/04/2013

PARAMETRER INTERNET EXPLORER 9

Application Web et J2EE

RÉALISATION D UN SITE DE RENCONTRE

Web Tier : déploiement de servlets

Connexion à SQL Server 2005 à partir du serveur d application SJSAS 9 Utilisation d une interface JDBC

Transcription:

Gestion Bibliothèque Résumé Ces travaux seront réalisés dans le cadre du cours Web Services Miage NTDP afin de permettre aux étudiants d assimiler les concepts théoriques vus en cours. L idée est de développer une application (réelle) et d essayer d appliquer les concepts du cours. Nous proposons le développement d une application de gestion d une bibliothèque dans laquelle les étudiants ajouteront un module web Service afin d exposer les entités de l application comme ressource, pouvant être (ré) utilisée par d autres applications serveurs et principalement des applications clientes (HTML5, Android). Contexte de l application 1. Les discussions avec le client ont permis de modéliser le diagramme de classe suivant : Personne +Nom +Prénom +Sexe +Photo +Email +Date de Naissance Categorie +Nom +Description +Image 1 contient * Auteur +A propos +Nationalité +Type Auteur 1 * Ecrit Livre +Titre +Description +Résumé +Quantité +Isbn 1 Concerne * Utilisateur +Nom Utilisateur +Mot de passe +Type Utilisateur +Statut Compte +Derniere Connexion * 1 Emprunte Pret +Date Debut +Durée 2. De ces discussions, nous avons pu dégager les cas d utilisation présentés sur la figure suivante

Gérer livre Consulter Livre Prêter Livre Gérer catégorie Se Connecter Membre Administrator Gérer auteur Consulter categorie Gérer compte utilisateur Consulter Auteur Gérer les prêts Travaux à réaliser 1. Les travaux à réaliser dans le cadre de ces activités consistent à : a. Développer une application serveur permettant la gestion d un modèle de données correspondant à celui de la figure 1 b. Administrer ce modèle dans une base de données Relationnelles c. Exposer les entités de ce modèle dans un web service REST d. Développer un client HTML5 permettant de manipuler ce modèle depuis une interface web (ordinateurs, tablettes, Smartphones) e. Développer un client mobile Android permettant à un abonné de la bibliothèque de pouvoir consulter les livres disponibles et d effectuer un prêt. Contraintes L application serveur doit être réalisée en langage Java en utilisant les EJBs Le service web doit être de type REST Le service doit supporter les formats JSON et XML

Partie 1 : Développement de l application RESTFul 1. Le modèle de données En ce qui nous concerne, ce module n est pas une priorité. Nous supposons que vous avez les bases nécessaires vous permettant de le développer à partir des connaissances acquises dans le cours de J2EE. Nous supposerons dans la suite de ce document que vous avez récupérez le projet source depuis github «https://github.com/eamosse/bibliotheque_ntdp.git» A. Exposer les entités comme ressources dans un web service REST a. Dans le dossier Source Package de votre application «Bibliotheque», ajoutez un nouveau package «fr.unice.miage.ntdp.bibliotheque.services» 1. Faites bouton doigt sur le dossier Source Packages è New è Java Package 2. Entrez «fr.unice.miage.ntdp.bibliotheque.services» è Finish b. Exposer la classe Catégorie comme ressource Comme nous l avions vu en cours, JERSEY propose un ensemble d annotation permettant d exposer une classe Java comme ressource dans une application RESTFull! Il suffit d ajouter l annotation @Path sur le classe en lui donnant un nom statique en paramètre.

1. Ajouter une nouvelle classe dans le package «service» créé récemment. Faites bouton doigt service è New è JavaClass! 2. Dans l écran qui s affiche, Donnez une valeur au champ Class Name (Mettez CategorieRessource par exemple) è Finish 3. Ajoutez une annotation @Path sur la classe «CategorieRessource»! N oubliez pas de préciser le nom en paramètre à l annotation. Avezvous remarqué la petite ampoule à droite de la classe? Elle vous signale que la classe qui expose toutes les ressources de votre projet n a pas été créée. En effet, en lieu et place d un fichier de configuration, JERSEY utilise une classe qui permet de gérer la configuration de l application : renseigner les classes exposées comme ressources, le contexte de base de ressources etc. 4. Cliquez sur la petite ampoule è Choisissez Create REST using Java EE 6 specification

Remarquez l ajout d un nouveau Package dans le projet «org.netbeans.rest.application.config», vous pouvez le laisser ainsi où le renommer, le nom n a pas d importance! Remarquez egalement la création d une nouvelle classe «ApplicationConfig», vous pouvez la renommer si ça vous tente! A partir 5. de Java EE 6, cette classe est proposée comme alternative aux paramètres du service dans le fichier de configuration «web.xml». Ouvrez la classe Application Config dans votre éditeur ð ð Remarquez l annotation @javax.ws.rs.applicationpath("webresources") Observez bien les méthodes de cette classe, elles devraient vous réveiller votre mémoire sur certaines choses qu on a vues en cours. 5. Ajoutez une méthode qui répond à une requête HTTP/GET indiquant que la ressource demandée existe. 6. Testez! Faites bouton doigt sur votre projet et dans le menu qui s affiche choisissez Test RestFul Web Service Dans la fenêtre qui s affiche sélectionnez Web Test Client in Project è Browse è Sélectionnez Bibliotheque è OK è OK

Après cette étape, Vous devriez voir de nouveaux fichiers s ajouter à votre projet! Cet outil ajoute à votre application web un ensemble de fichiers statiques (html, css, javascript) qui vous permettront de tester votre service via une interface web! 7. Si tout s est bien passé, Netbeans a dû lancer automatiquement votre navigateur avec un lien vers le document de test! Si ce n est pas le cas appelez au secours. 8. Dans le panel de gauche de votre écran vous devriez avoir la liste des ressources qui ont été exposées dans votre application ð Cliquez sur categorie, dans le panel de droite choisissez un format de représentation correspondant à l un des formats de produit par la méthode, puis cliquez sur test. Dans la section réponse, vous devriez voir la donné renvoyée par la méthode s afficher. 9. Modifiez la classe CategorieRessource pour y ajouter les méthodes correspondant aux opérations CRUD

Le projet dispose d une interface permettant de persister les objets dans une base de données relationnelle, en utilisant les EJBs. Réutilisez cette classe afin de simplifier l accès à la base de données 1. Faites hériter la classe CategorieRessource de AbstractFacade (package bean) @Path("categorie") public class CategorieRessource extends AbstractFacade<Categorie> { } public CategorieRessource() { super(categorie.class); } 2. Ajoutez une méthode List qui renvoie la liste des catégories @GET @Produces({MediaType.APPLICATION_XML,MediaType.APPLICATION_JSON}) public List<Categorie> list(){ return super.findall(); } 3. Refaites les étapes 6, 7 et 8 et observez les résultats obtenus Utilisez les interfaces de l application web pour ajouter de nouvelles données dans la base Normalement, la représentation au format JSON se passera sans grandes difficultés Par contre, le format xml risque de vous poser quelques soucis, la plupart d entre vous auront une erreur semblable à celleci : Ne vous en affolez pas, il vous manque un petit quelques choses En effet, si vous vous souvenez dans la classe ApplicationConfig, vous avez chargé une classe dans les ressources «Class.forName("org.glassfish.jersey.jackson.JacksonFeature");», cette librairie de classe déjà intégrée à glassfish se charge du mapping objetè JSON, JSONè Objet. Pour le XML, il faut ajouter une annotation spécifique sur les entités à exposer. Si vous voulez qu une classe (entité) soit serialisable en xml, il suffit d ajouter l annotation «@XmlRootElement» du package «javax.xml.bind.annotation» 4. Ajoutez une méthode create permettant d'ajouter une nouvelle catégorie dans la base

Cette méthode doit prendre en paramètre un objet de type catégorie et renvoyer un message de confirmation ou d'échec en fonction du résultat de la transaction avec la base de données. 5. La méthode acceptera des données sous deux formats (XML ou JSON) La méthode doit renvoyer une réponse soit en XML ou en JSON A ce stade vous devriez vous demander comment attendre des données en JSON ou en XML alors que la méthode prend en paramètre un objet de type catégorie!!!! En effet, le client à l'appel de la méthode doit sérialiser ses données dans l'un des formats supportés par la méthode (XML ou JSON), mais avant l'appel à la méthode JERSEY s'occupe de la désérialisation à notre place. Ainsi on peut vitre tranquillement dans notre petit monde ou tout est objet. 6. Exercices (à rendre à la fin du cours) Complétez la ressource «catégorie» en y ajoutant les méthodes suivantes : Update > Modifier une catégorie existante Delete> Supprimer une catégorie identifiée par son id Count > Renvoie le nombre de catégories existantes dans la base FindByRange > Renvoie les catégories entre un id(min) et un id(max) Utilisez l interface web de test pour tester toutes vos méthodes (Ajout, Suppression, Mise à jour 7. Exercices (à remettre le vendredi 28/11/2014) Exposez les autres entités du modèle comme ressources Ajoutez une méthode dans la ressource, permettant de retrouver tous les livres d une catégorie Ajoutez une méthode permettant de lister tous les prêts relatifs à un livre Ajoutez une méthode permettant de retrouver tous les prêts relatifs à un utilisateur donné Ajoutez une méthode permettant de changer le statut d un prêt Ajoutez une méthode permettant de désactiver/activer un compte utilisateur Fin de la partie 1