VII. Importer le projet BarkBank▲
Le projet BarkBank est une application Web (« Web Applications ») exposant le Web Service « ValidationService » chargé de simuler le processus de validation des cartes de crédit.
Nous allons décrire les différentes étapes nécessaires pour importer le projet BarkBank de l'application Yaps vers NetBeans.
L'ensemble des opérations qui suivent est réalisé sous NetBeans.
LLVII-A. Créer un nouveau projet▲
LLVII-A-1. Fermeture des projets▲
Vous allez créer un nouveau de groupe de projets qui sera spécifique à BarkBank.
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 :
LLVII-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.
LLVII-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: | BarkBank |
Project Folder: | C:\Projects\YapsON\BarkBank |
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.
LLVII-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 BarkBank :
La configuration utilisée pour le déploiement est la suivante :
Server: | Petstore |
Context Path: | /barkbank |
Cliquez sur le bouton « Next » pour continuer.
LLVII-A-5. Les frameworks▲
La dernière étape consiste à spécifier les frameworks à utiliser.
Dans le cadre du projet « BarkBank », aucun framework spécifique n'est employé :
Appuyez sur le bouton « Finish » pour terminer le processus de création du projet.
LLVII-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 BarkBank de l'application Yaps vers l'arborescence de NetBeans.
LLVII-B. Transférer le projet sous NetBeans▲
L'opération de transfert du projet BarkBank 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.
Pour faciliter cette opération, le script Ant « yapson.xml » (décrit dans la section 3.5) automatise la copie des fichiers.
LLVII-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
LLVII-B-2. Transférer le projet▲
À partir de la ligne de commande, exécutez la tâche « transferBarkBank » chargée de transférer le projet sous NetBeans :
{yapson_home}> ant -f yapson.xml transferBarkBank
Buildfile: yapson.xml
transferBarkBank:
[echo] Transfer the BarkBank projet to NetBeans
...
L'exécution du script Ant commence par demander une confirmation 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\BarkBank\src\java
[echo] === Copy Web Resources ===
[copy] Copying 2 files to c:\Projects\YapsON\BarkBank\web
[echo] === Copy Web Descriptors ===
[copy] Copying 1 file to c:\Projects\YapsON\BarkBank\web\WEB-INF
BUILD SUCCESSFUL
NetBeans rafraîchit automatiquement le projet BarkBank :
LLVII-B-3. Créer le groupe de projet▲
NetBeans offre la possibilité de créer des groupes de projets pour faciliter le passage d'un projet à l'autre sans avoir à redémarrer l'IDE.
À 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 BarkBank :
Les options par défaut indiquent que les projets en cours de chargement dans l'IDE seront automatiquement ajoutés au groupe de projet BarkBank.
Cliquez sur le bouton « Create Group ».
LLVII-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 ».
Le fenêtre « Output » affiche les traces de la compilation :
Les messages intéressants sont les suivants :
...
compile:
compile-jsps:
Created dir: C:\Projects\YapsON\BarkBank\dist
Building jar: C:\Projects\YapsON\BarkBank\dist\BarkBank.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 « BarkBank.war ».
LLVII-4. 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 BarkBank é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 BarkBank sur le serveur PetStore.
Rendez-vous sur l'onglet "Services" et sélectionnez le serveur "Petstore".
Le noeud « Applications -> Web Applications -> BarkBank » affiche les ressources et services exposés par l'application :
L'application BarkBank est accessible à l'adresse http://localhost:8080/barkbank 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.
LLVII-E. Tester le projet▲
Vous êtes maintenant en mesure de tester l'application BarkBank en invoquant le Web Service « ValidationService ».
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.
Client de test SOAP
Nous vous recommandons d'évaluer la solution soapUI (http://www.soapui.org) qui est un outil de test de Web Service.
soapUI est proposé sous deux licences. La version standard est gratuite et distribuée sous licence Open Source. La version Pro est payante.
soapUI peut-être intégré sous forme de plug-in tant sous Eclipse que sous NetBeans.
Mais nous avons toutefois constaté des problèmes de stabilités avec le plug-in pour NetBeans contrairement à la stabilité affichée par la version standalone.
LLVII-E-1. Méthode 1 : Web Service Tester de GlassFish▲
Au travers de la fenêtre « Projects », un clic droit sur le Web Service « Validation » 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 « ValidationService » au travers de l'URL suivante:
http://localhost:8080/barkbank/ValidationService?Tester
Ce mécanisme est largement décrit dans le livre de référence.
LLVII-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 » :
Pour ajouter un Web Service, procédez comme suit.
Vous devez avant tout créer un groupe dans lequel seront stockés les Web Service du projet YapsON.
Un click droit sur le noeud « Web Services » propose un menu contextuel dans lequel vous allez créer le groupe « YapsON » par l'option « Create Group » :
Ensuite, un clic droit sur le groupe « YapsON » offre un ensemble d'options parmi lesquelles celle qui permet d'ajouter un Web Service par l'option « Add 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/barkbank/ValidationService?WSDL
Cliquez sur le bouton "OK" pour ajouter la référence du Web Service sous NetBeans.
Le Web Service « ValidationService » est maintenant ajouté à la liste des Web Service :
Un clic droit sur l'opération « ValidateCard » 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:
creditCardNumber: | 1234567890 |
creditCardType: | MC |
expiryDate: | 11/09 |
Cliquez sur le bouton « Submit » pour envoyer la requête au Web Service « ValidationService ».
Les données sont considérées comme valides par le service et le résultat est un message « OK » :
Si l'on omet par exemple la date d'expiration, le Web Service retourne un message d'erreur explicite composé par l'application BarkBank :
LLVII-F. Conclusion▲
Les sources de l'application BarkBank 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 BarkBank a été correctement compilé et est déployé sur le serveur.