VIII. Importer le projet PetEx▲
Le projet PetEx est une application Web (« Web Applications ») exposant le Web Service « DeliveryService » chargé de simuler le processus de transport des marchandises achetées en ligne.
Nous allons décrire les différentes étapes nécessaires pour importer le projet PetEx de l'application Yaps vers NetBeans. Vous noterez que le principe est en tout point similaire au processus d'importation du projet BarkBank.
L'ensemble des opérations qui suivent est réalisé sous NetBeans.
LLVIII-A. Créer un nouveau projet▲
LLVIII-A-1. Fermeture des projets▲
Vous allez créer un nouveau de groupe de projets qui sera spécifique à PetEx.
Si c'est le cas, il y a d'abord lieu de fermer l'ensemble des projets actuellement ouverts sous NetBeans.
Sélectionnez l'onglet « Projects ».
Un clic droit fait apparaître le menu contextuel. L'option « Project Group (none) » permet de fermer l'ensemble des projets ouverts :
LLVIII-A-2. Type de projet▲
Créez un nouveau projet de type « Web Application ».
Pour cela, sélectionnez l'onglet « Project » et créez un nouveau projet via le menu « File New Project ».
Le projet que vous allez créer est de type « Java Web -> Web Application » :
Cliquez sur le bouton « Next » pour continuer.
LLVIII-A-3. Nom et répertoires▲
L'écran suivant vous permet de nommer le projet, et de définir le dossier cible:
Les informations à introduire sont les suivantes:
Project Name: | PetEx |
Project Folder: | C:\Projects\YapsON\PetEx |
Project Folder
Le répertoire du projet est donné ici à titre d'exemple et doit correspondre au répertoire où vous avez décompressé le fichier d'archives de l'application YapsON (voir ici).
Cliquez sur le bouton « Next » pour continuer.
LLVIII-A-4. Configuration du serveur▲
Cette étape vous permet d'identifier le serveur d'applications « PetStore » (voir ici) sur lequel sera déployée l'application PetEx :
La configuration utilisée pour le déploiement est la suivante :
Server: | Petstore |
Context Path: | /petex |
Cliquez sur le bouton « Next » pour continuer.
LLVIII-A-5. Les frameworks▲
La dernière étape consiste à spécifier les frameworks à utiliser.
Dans le cadre du projet « PetEx », aucun framework spécifique n'est employé :
Appuyez sur le bouton « Finish » pour terminer le processus de création du projet.
LLVIII-A-6. Génération du projet▲
Le projet est maintenant généré et présente l'ensemble des dossiers suivants :
Vous êtes prêt à importer le code source du projet PetEx de l'application Yaps vers l'arborescence de NetBeans.
LLVIII-B. Transférer le projet sous NetBeans▲
L'opération de transfert du projet PetEx consiste à copier les fichiers de l'application Yaps vers l'application YapsON.
Pour faciliter cette opération, le script Ant « yapson.xml » (décrit dans la section 3.5) automatise la copie des fichiers.
Assurez-vous d'avoir configuré le fichier « yapson.properties » tel que décrit dans la section 4.
LLVIII-B-1. Positionner les variables d'environnement▲
Les commandes que vous allez exécuter nécessitent de positionner les variables d'environnement pour l'exécution des tâches Ant.
Rendez-vous dans le répertoire de l'application YapsON et exécutez le fichier de commande « setenv-yaps.cmd » :
C:> cd {yapson_home}
{yapson_home}> setenv-yaps.cmd
LLVIII-B-2. Transférer le projet▲
À partir de la ligne de commande, exécutez la tâche Ant « transferPetEx » chargée de transférer le projet sous NetBeans :
%YAPSON-HOME%> ant -f yapson.xml transferPetEx
Buildfile: yapson.xml
transferPetEx:
[echo] Transfer the PetEx projet to NetBeans
...
L'exécution du script Ant commence par demander une confirmation à l'utilisateur avant de procéder au remplacement des fichiers :
...
[input] The target source files will be overwritten by the original YAPS project. Do you
want to continue? (y, n)
y
...
Dans l'affirmative, la tâche Ant copie respectivement les codes sources Java, les fichiers de ressources Web et les descripteurs :
...
[echo] === Copy Java Sources ===
[copy] Copying 1 file to c:\Projects\YapsON\PetEx\src\java
[echo] === Copy Web Resources ===
[copy] Copying 2 files to c:\Projects\YapsON\PetEx\web
[echo] === Copy Web Descriptors ===
[copy] Copying 1 file to c:\Projects\YapsON\PetEx\web\WEB-INF
BUILD SUCCESSFUL
NetBeans rafraîchit automatiquement le projet PetEx :
LLVIII-B-3. Créer le groupe de projet▲
À partir du menu « File » ou via un clic droit dans la fenêtre « Projects », NetBeans offre la capacité de créer le nouveau groupe de projet:
Sélectionnez l'option « New group ».
La fenêtre suivante permet de nommer le groupe de projet qui est dans notre cas PetEx :
Les options par défaut indiquent que les projets en cours de chargement dans l'IDE seront automatiquement ajoutés au groupe de projet PetEx.
Cliquez sur le bouton « Create Group ».
LLVIII-C. Compiler le projet▲
Un clic droit sur le projet fait apparaître le menu contextuel proposant les options pour compiler le projet (« Build » ou « Clean and Build ») :
Cliquez sur l'option « Clean and Build ».
La fenêtre « Output » affiche les traces de la compilation :
Les messages intéressants sont les suivants :
...
compile:
compile-jsps:
Created dir: C:\Projects\YapsON\PetEx\dist
Building jar: C:\Projects\YapsON\PetEx\dist\PetEx.war
do-dist:
dist:
BUILD SUCCESSFUL (total time: 2 seconds)
Ces traces indiquent que le projet a été correctement compilé (« BUILD SUCCESSFUL ») et archivé dans le fichier « PetEx.war ».
LLVIII-D. Déployer le projet▲
Vous allez maintenant procéder au déploiement du projet sous GlassFish.
Un clic droit sur le projet fait apparaître le menu contextuel proposant l'option de déploiement (« Deploy ») :
Cliquez sur l'option « Deploy ».
Si nécessaire, NetBeans se charge de démarrer le serveur d'applications « PetStore ».
Si l'application PetEx était déjà déployée sur le serveur, NetBeans se charge de la supprimer (Undeploying)
pour la remplacer par la nouvelle version.
La fenêtre « Output » trace les messages suivants :
...
deployment started : 0%
deployment finished : 100%
Deploying application in domain completed successfully
...
All operations completed successfully
run-deploy:
BUILD SUCCESSFUL (total time: 4 seconds)
Le déploiement terminé, vous pouvez explorer le contenu de l'application PetEx sur le serveur PetStore.
Rendez-vous sur l'onglet "Services" et sélectionnez le serveur "Petstore".
Le noeud « Applications -> Web Applications -> PetEx» affiche les ressources et services exposés par l'application :
L'application PetEx est accessible à l'adresse http://localhost:8080/petex et se présente comme suit:
À ce stade, vous pouvez inspecter le WSDL ou tester le service tel que décrit dans le livre de référence.
LLVIII-E. Tester le projet▲
Nous sommes maintenant en mesure de tester l'application PetEx en invoquant le Web Service « DeliveryService ».
Un Web Service peut être testé de différentes manières. Nous allons ici nous contenter de quelques unes d'entre elles disponibles sous NetBeans.
LLVIII-E-1. Méthode 1: Web Service Tester de GlassFish▲
Au travers de la fenêtre « Projects », un clic droit sur le Web Service « Delivery » propose le menu contextuel suivant:
L'option « Test Web Service » invoque le mécanisme de tests de Web Service de GlassFish qui a son tour invoque le Web Service « DeliveryService » au travers de l'URL suivante:
http://localhost:8080/petex/DeliveryService?Tester
Cette mécanique de test n'est pas vraiment appropriée pour tester le Web Service « DeliveryService ». La raison est que la requête à transmettre contient un message complexe.
LLVIII-E-2. Méthode 2: Web Service Tester de NetBeans▲
Cette méthode consiste à enregistrer le Web Service sous NetBeans afin de bénéficier d'un outil de test
un peu plus évolué que celui offert par GlassFish.
Les Web Services sont répertoriés dans la fenêtre « Services » sous le noeud « Web Service » :
Le groupe de Web Service « YapsON » a déjà été créé précédemment.
Nous allons nous concentrer sur l'ajout de la référence du Web Service de PetEx.
Un clic droit sur le groupe « YapsON » offre un ensemble d'options parmi lesquelles celles permettant
d'ajouter un Web Service:
Le formulaire permet d'identifier le Web Service à partir de son WSDL:
Veuillez localiser le WSDL du Web Service à partir de son URL :
http://localhost:8080/petex/DeliveryService?WSDL
Cliquer sur le bouton "OK" pour ajouter la référence au Web Service sous NetBeans.
Le Web Service « DeliveryService » est maintenant ajouté à la liste des Web Service :
Un clic droit sur l'opération « deliveryItems » permet de tester la méthode au travers de l'écran suivant :
La partie supérieure concerne la requête à émettre tandis que la partie inférieure se charge d'afficher le message de retour. Le bouton « Submit » permet d'envoyer la requête au Web Service.
Testez le Web Service avec les données suivantes:
Delivery From | City | Liège |
Contact | Said Eloudrhiri | |
Country | BE | |
State | None | |
Street | My street | |
Zipcode | 1234 |
Delivery To | City | Paris |
Contact | Antonio Goncalves | |
Country | FR | |
State | None | |
Street | Your street | |
Zipcode | 5678 |
Reference | Number | 12345678 |
Cliquez sur le bouton « Submit » pour envoyer la requête au Web Service « DeliveryService ».
La réponse retournée par le Web Service est vide :
En effet, le code de retour du Web Service « DeliveryService » est de type « void ».
Par contre, le Web Service trace la requête en utilisant le « logger » applicatif défini pour « com.petex.transport ».
Si l'on se reporte sur la fenêtre « Output » et en particulier sur les traces générées par le serveur « Petstore », on retrouvera les traces suivantes :
..
ENTRY
Delivery Order Received
Deliver from DeliveryPlace{contact='Said Eloudrhiri', street='My street', city='Liège',
state='None', zipcode='1234', country='BE'}
Deliver to DeliveryPlace{contact='Antonio Goncalves', street='Your street', city='Paris',
state='None', zipcode='5678', country='FR'}
Reference n° 12345678
RETURN
Ces traces montrent que le Web Service a bien reçu le message de requête.
LLVIII-F. Conclusion▲
Les sources de l'application « PetEx » ont été transférées sous NetBeans dans une arborescence conforme au format préconisé par le Java Blueprints.
Les tests que nous avons réalisés attestent que le Web Service de l'application PetEx a été correctement compilé et est déployé sur le serveur.