Atatorus Blog

16 octobre 2010

AtaBib – Tutoriel GWT Spring : Installation de l’environnement

Filed under: Tutoriels — Tags:, , — atatorus @ 19:54

Comme premier tutoriel, j’ai choisi de parler de Google Web Toolkit et Spring.

GWT permet de créer des applications internet riches en Javascript et Ajax, sans qu’il soit besoin de maitriser Javascript, et facilite l’écriture des appels asynchrones d’Ajax. En effet, l’application se développe entièrement en Java, et un compilateur transformera notre code Java en code Javascript, exécutable sur n’importe quel navigateur, moyennant quelques restrictions dues à la compatibilité limitée entre les 2 langages.

Spring quant à lui est un framework très utilisé dans le monde J2EE. Sans être aussi complet que des serveurs tels JBoss, GlassFich ou Websphere, il est suffisemment riche en fonctionalités pour satisfaire la très grande majorité des besoins. Pour ce qui nous concerne, nous nous intéresserons plus particulièrement à l’injection de dépendance, aux templates JDBC qui simplifient les accès aux bases de données, et la programmation orientée aspect, que nous utiliserons pour gérer les transactions.

Nous allons découvrir tout ceci au cours d’une série d’articles décrivant le développement d’une application de gestion de bibliothèque, AtaBib.

Nous allons commencer par un cahier des charges rapide, et configurer notre espace de travail.

Introduction

Cahier des charges

Voici un rapide cahier des charges d’AtaBib :

  • Les livres comprennent un auteur, un titre (français et original), une date de parution. Pour certains, on stockera l’image de couverture.
  • Ils peuvent comporter plusieurs histoires, à référencer individuellement (Comme par exemple la Grande Anthologie de la Science Fiction), et / ou auteurs.
  • Ils peuvent aussi appartenir à des cycles (Exemple le cycle de Fondation d’Asimov, Les annales du Disque-Monde de Terry Pratchett).
  • On doit pouvoir les commenter, et leur mettre une note.
  • On doit savoir où est rangé un livre pour le retrouver sans avoir besoin de retourner toute la bibliothèque.
  • La recherche s’effectue par auteur, titre complet ou partiel, genre et note.
  • Quand un livre est prêté, on doit savoir à qui, quand, et programmer un rappel.
  • La catalogue de la bibliothèque doit être consultable en ligne, et on doit pouvoir réserver un livre par Internet.

Références

Pour les besoins de ce tutoriel, je me suis aidé des livres suivants :

  • Programmation GWT2, de Sami Jaber aux chez Eyrolles. Un excellent livre, dont le seul défaut est de ne pas présenter un cas pratique, d’où l’idée de ce tutoriel. Il explique cependant de manière clair tous les concepts de GWT.
  • Spring par la pratique, de Arnaud Cogoluègnes, Thierry Templier, Julien Dubois et Jean-Philippe Retaillé, toujours chez Eyrolles.

Je ne peux que vous conseiller également de vous rendre sur la site de Google Web Toolkit. Vous y trouverez des tutoriels, ainsi que la documentation officielle. La documentation de Spring quant à elle se trouve ici.

Environnement de travail

Pour développer, nous utiliserons Eclipse. Au moment où j’écris ce billet, la dernière version est Eclipse 3.6 Helios, que vous pouvez télécharger sur www.eclipse.org/downloads/. Choisissez la version Eclipse IDE for Java EE Developers. Pour l’installer, il vous suffira de décompresser l’archive.
GWT est disponible sur code.google.com/webtoolkit/. Pour l’installer, on va passer par le plug-in Eclipse. Allez dans le menu Help > Install New Software, puis cliquez sur le bouton Add :

Entrez le nom que vous voulez (Google Web Toolkit ira très bien), et à location, entrez http://dl.google.com/eclipse/plugin/3.6, cliquez sur OK. Vous pouvez en profiter pour télécharger le SDK de Google App Engine, même s’il ne nous servira pas ici :


Il ne reste plus qu’à cliquer sur le bouton Next, et suivre les instructions.

Pour ce qui est de la création de l’interface graphique, nous utiliserons les programmes d’Instatiations, que Google a racheté et dont il met en téléchargement gratuit ses outils. Nous allons utiliser GWT Designer, ou, si vous préférez, Windows Builder Pro qui permet, en plus des interfaces pour GWT, de créer des interfaces pour Swing et SWT. L’installation se déroule comme pour le plug-in GWT, l’URL est http://dl.google.com/eclipse/inst/d2gwt/latest/3.6 pour GWT Designer et http://dl.google.com/eclipse/inst/d2wbpro/latest/3.6 pour Windows Builder Pro.

De même, il existe un plug-in Eclipse pour Spring. Nous installerons celui ci grâce à Eclipse Market Place, une fonctionnalité apparu à partir de la version 3.6. Pour ceci, allez dans le menu Help > Eclipse Marketplace, et dans la boite de dialogue cherchez Spring :


Ensuite, il ne vous reste plus qu’à cliquer sur le bouton Install de Spring IDE. L’écran suivant vous demande quels outils installer, choisissez les tous. Les outils ne sont pas tout, il nous faudra également télécharger le framework lui même. Pour ceci, rendez vous sur la page www.springsource.com/download/community et téléchargez la dernière version (3.0.3 au moment où j’écris ces lignes). Décompressez l’archive dans un répertoire de votre choix, nous l’utiliserons plus tard quand on abordera la partie serveur de notre application.
Maintenant que tout est en place, nous pouvons commencer.

Création du projet

Création du projet dans Eclipse

La création d’un projet GWT se fait avec CTRL + N, et en choisissant Web Application Project dans la fenêtre ci dessous :

L’étape suivante consiste à entrer le nom du projet et le package à utiliser :

Désélectionnez Use GoogleApp Engine, nous ne nous en servirons pas. En cliquant sur Finish, on obtient le squelette d’une application GWT fonctionnelle, prête à s’exécuter :

L’application se lance en mode développement. Dans ce mode, l’application tourne sur un serveur Jetty compris dans le SDK, et nécessite un plugin pour fonctionner. Pour vous connectez à l’application, entrez l’adresse suivante dans un navigateur : http://127.0.0.1:8888/Atabib.html?gwt.codesvr=127.0.0.1:9997. Au premier démarrage, on nous invite à installer le plug-in :

Une fois le plugin installé, l’application se contente de nous demander notre nom et affiche une boite de dialogue avec diverses informations sur notre système :

Note : si comme moi vous êtes sous Linux 64 bits et Firefox 3.6, le plugin peut ne pas s’installer. La solution est ici, vous devrez le compiler vous même en suivant les instructions.

Le fait d’utiliser un plugin nous permet d’exécuter notre programme en pas à pas lors du débogage. Bien qu’il s’agisse de code Javascript qui s’exécute, chaque pas correspondra à une instruction de notre code Java. À aucun moment, nous avons besoin de nous plonger dans du code Javascript.

Structure d’une application GWT

Voici la structure du projet atabib à la création :

On remarque 3 packages dans le répertoire src :

  • client : c’est dans ce package qu’on place toutes les classes Java qui seront compilées en Javascript. Ces classes sont soumises à certaines restrictions, toutes les classes du JDK ne sont pas traduisibles en Javascript. GWT a déjà généré pour nous une classe et deux interfaces :
    • Atabib : il s’agit du point d’entrée de notre application. Elle doit implémenter l’interface com.google.gwt.core.client.EntryPoint.
    • GreetingService : c’est l’interface du service de l’application.
    • GreetingServiceImpl : c’est l’interface asynchrone correspondant à notre service.
  • server : ce package contient les classes s’exécutant sur le serveur, qui ne seront pas traduites en Javascript. La classe GreetingServiceImpl est l’implémentation coté serveur du service.
  • shared : un autre package à traduire en Javascript.

Cette organisation est celle par défaut, mais il est possible de la changer, en modifiant le fichier Atabib.gwt.xml. C’est dans ce fichier qu’on trouve, entre autre, la définition du point d’entrée de l’application, ainsi que la liste des packages à traduire en Javascript.

Le répertoire war est le répertoire qui contiendra le site web lui même. On y trouve la page de notre site et sa feuille de style. Le fichier web.xml contient la description de notre application et des servlets comme toute application J2EE classique.

Voilà donc pour l’installation de notre environnement de travail. Nous allons aborder dans la partie suivante notre premier programme. Pour ceci, suivez le guide : Premier programme coté client

Contrat Creative Commons
This création is licensed under a Creative Commons Paternité – Partage des Conditions Initiales à l’Identique 2.0 France License.

Laisser un commentaire »

Pas encore de commentaire.

Flux RSS des commentaires de cet article. URI du rétrolien

Répondre

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Twitter picture

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Connexion à %s

Thème : Silver is the New Black. Un Blog WordPress.com.

Suivre

Get every new post delivered to your Inbox.