IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

YAPS Pet Store sous NetBeans


précédentsommairesuivant

IX. Importer le projet Yaps - côté serveur

Le projet Yaps-Server est une application de type « Enterprise Applications »qui a pour fonction d'héberger la logique serveur de l'application Yaps.

Le projet Yaps-Server est composé des modules suivants :

  • Module EJB : Entity, Stateless, Statefull, Message Driver Bean
  • Module Web : JSF

L'ensemble des opérations qui suivent est réalisé sous NetBeans.

LLIX-A. Créer un nouveau projet

LLIX-A-1. Fermeture des projets

Vous allez créer un nouveau de groupe de projets qui sera spécifique à Yaps-Server.
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 :

Image non disponible

LLIX-A-2. Type de projet

Créez un nouveau projet de type Enterprise 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 EE > Enterprise Application » :

Image non disponible

Cliquez sur le bouton « Next » pour continuer.

LLIX-A-3. Nom et répertoires

L'écran suivant vous permet de nommer le projet, et de définir le dossier cible:

Image non disponible

Les informations à introduire sont les suivantes:

Project Name:  Yaps-Server
Project Folder:  C:\Projects\YapsON\Yaps-Server

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.

LLIX-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 ainsi que les modules (EJB et Web) associés au projet:

Image non disponible

La configuration utilisée pour le déploiement est la suivante :

Server: Petstore
EJB Module: Yaps-Server-ejb
Web Application Module: Yaps-Server-war

Cliquez sur le bouton « Finish » pour terminer le processus de création du projet.

LLIX-A-5. Génération du projet

Le projet est maintenant généré et présente l'ensemble des dossiers suivants :

Image non disponible

Vous êtes prêt à importer le code source du projet Yaps (côté serveur) de l'application Yaps vers l'arborescence de NetBeans.

LLIX-B. Transférer le projet sous NetBeans

L'opération de transfert du projet Yaps consiste à copier les fichiers de la partie serveur 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.

LLIX-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 » :

 
Sélectionnez
C:> cd {yapson_home}
{yapson_home}> setenv-yaps.cmd

LLIX-B-2. Transférer le projet

À partir de la ligne de commande, exécutez la tâche Ant « transferYapsServer » chargée de transférer le projet sous NetBeans :

 
Sélectionnez
%YAPSON-HOME%> ant -f yapson.xml transferYapsServer
Buildfile: yapson.xml
transferYapsServer:
[echo] Transfer to NetBeans the server part of the Yaps project
...

L'exécution du script Ant commence par demander une confirmation à l'utilisateur avant de procéder au remplacement des fichiers :

 
Sélectionnez
...
[input] The target source files will be overwritten by the original YAPS project. Do you
want to continue? (y, n)
y
...

La tâche Ant copie ensuite les éléments requis pour le module « Yaps-Server-ejb » :

 
Sélectionnez
...
[echo] >>>>>> Module Yaps-Server-ejb >>>>>>
[echo] === Copy Java Sources ===
[echo] entity ...
[copy] Copying 8 files to c:\Projects\YapsON\Yaps-Server\Yaps-Serverejb\
src\java\com\yaps\petstore\entity
[echo] exception ...
[copy] Copying 2 files to c:\Projects\YapsON\Yaps-Server\Yaps-Serverejb\
src\java\com\yaps\petstore\exception
[echo] mdb ...
[copy] Copying 2 files to c:\Projects\YapsON\Yaps-Server\Yaps-Serverejb\
src\java\com\yaps\petstore\mdb
[echo] stateless ...
[copy] Copying 9 files to c:\Projects\YapsON\Yaps-Server\Yaps-Serverejb\
src\java\com\yaps\petstore\stateless
[echo] statefull ...
[copy] Copying 3 files to c:\Projects\YapsON\Yaps-Server\Yaps-Serverejb\
src\java\com\yaps\petstore\stateful
[echo] util ...
[copy] Copying 2 files to c:\Projects\YapsON\Yaps-Server\Yaps-Serverejb\
src\java\com\yaps\petstore\util
[echo] === Copy Persistence Unit ===
[copy] Copying 1 file to c:\Projects\YapsON\Yaps-Server\Yaps-Server-ejb\src\conf
...

Ensuite, les ressources nécessaires pour le module "Yaps-Server-war" sont transférées :

 
Sélectionnez
...
[echo] >>>>>> Module Yaps-Server-war >>>>>>
[echo] === Copy Web Sources ===
[copy] Copying 4 files to c:\Projects\YapsON\Yaps-Server\Yaps-Serverwar\
src\java\com\yaps\petstore\jsf
[echo] === Copy Web Resources ===
[copy] Copying 39 files to c:\Projects\YapsON\Yaps-Server\Yaps-Server-war\web
[echo] === Copy Web Descriptors ===
[copy] Copying 2 files to c:\Projects\YapsON\Yaps-Server\Yaps-Server-war\web\WEB-INF
...

Pour terminer, les ressources utilitaires sont transférées (dans notre cas le fichier SQL contenant les données de test) :

 
Sélectionnez
...
[echo] >>>>>> Tools >>>>>>
[echo] === Copy Test data file ===
[copy] Copying 1 file to c:\Projects\Yaps-Server
BUILD SUCCESSFUL

NetBeans rafraîchit automatiquement le projet Yaps-Server :

Image non disponible

Ouverture des modules

Il se peut que les modules du projet Yaps-Server soient fermés :

Image non disponible

Un clic droit sur le module vous permet d'ouvrir le sous-projet dans l'IDE :

Image non disponible

LLIX-B-3. Référencer les Web Services

Des erreurs apparaissent dans les modules « Yaps-Server-ejb » et « Yaps-Server-war ».

La cause de ces erreurs est que les références des Web Service des projets « BarkBank » et « PetEx » sont manquantes.

LLIX-B-3-a. Référencer DeliveryService

Dans le module « Yaps-Server-ejb », la classe « OrderBean » injecte la référence du Web Service « DeliveryService » issue du projet « PetEx ».
Pour corriger l'erreur, vous allez devoir ajouter le Proxy client du Web Service.

Un clic droit sur le module « Yaps-Server-ejb » fait apparaître le menu contextuel dans vous devez sélectionner l'option « New -> Web Service Client » :

Image non disponible

L'écran suivant vous demande de localiser le WSDL du Web Service :

Image non disponible

Dans notre cas, vous devez fournir l'URL du WSDL relatif à l'application PetEx:

http://localhost:8080/petex/DeliveryService?WSDL

Démarrage du serveur PetStore

Assurez-vous que le serveur « Petstore » est démarré, car dans le cas contraire la tâche de création du client Web Service ne pourra localiser l'URL du WSDL.

Cliquer sur « Finish » pour générer le code du Proxy client du Web Service.

Localisation du WSDL

Nous aurions pu localiser le WSDL soit par projet ou par fichier.
Par Projet, cela aurait impliqué que le projet PetEx soit également ouvert dans l'IDE.
Par Fichier, cela nécessite de localiser le fichier WSDL généré dans le projet PetEx.
Nous avons préféré illustrer le mode URL pour simuler la situation où le Web Service serait déployé sur un serveur distant ?

À la fin du processus de génération, le dossier « Web Service References » est ajouté au module « Yaps-Server-ejb » et contient le Proxy client du Web Service :

Image non disponible

Code source du Proxy client

Le code source Java du Proxy client est généré sous le répertoire suivant :

 
Sélectionnez
{yapson_home}/Yaps-Server/Yaps-Server-ejb/build/generated/wsimport/client

NetBeans va ensuite automatiquement rafraîchir le projet et faire disparaître les erreurs de références repérées dans la classe « OrderBean ».

LLIX-B-3-b. Référencer ValidationService

Dans le module « Yaps-Server-war », la classe « ShoppingCartController » injecte la référence du Web Service « ValidationService » issue du projet « BarkBank ».

Pour corriger l'erreur, vous allez devoir ajouter le Proxy client du Web Service.

Un clic droit sur le module « Yaps-Server-war » fait apparaître le menu contextuel dans vous devez sélectionner l'option « New -> Web Service Client » :

Image non disponible

L'écran suivant vous demande de localiser le WSDL du Web Service :

Image non disponible

Dans notre cas, vous devez fournir l'URL du WSDL relatif à l'application BarkBank:

http://localhost:8080/barkbank/ValidationService?WSDL

Cliquer sur « Finish » pour générer le code du Proxy client du Web Service.

À la fin du processus de génération, le dossier « Web Service References » est ajouté au module « Yaps-Server-war » et contient le Proxy client du Web Service :

Image non disponible

Code source du Proxy client

Le code source Java du Proxy client est généré sous le répertoire suivant :

 
Sélectionnez
{yapson_home}/Yaps-Server/Yaps-Server-war/build/generated/wsimport/client

NetBeans va ensuite automatiquement rafraîchir le projet et faire disparaître les erreurs de références repérées dans la classe « ShoppingCartController ».

LLIX-B-4. 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:

Image non disponible

Sélectionnez l'option « New group ».

La fenêtre suivante permet de nommer le groupe de projet qui est dans notre cas Yaps-Server :

Image non disponible

Les options par défaut indiquent que les projets en cours de chargement dans l'IDE seront automatiquement ajoutés au groupe de projet.

Cliquez sur le bouton « Create Group ».

LLIX-C. Changer le Context Root

Pour être conforme au livre de référence, vous allez changer le Context Root de l'application Web qui a été défini par défaut dans le module « Yaps-Server-war ».

Le Context Root est défini dans le fichier de déploiement « sun-web.xml » qui se trouve sous :

Yaps-Server-war -> Configuration Files -> sun-web.xml

Image non disponible

Le fichier « sun-web.xml » est le descripteur de déploiement Web pour SUN GlassFish.

Éditez ce fichier et modifiez l'entrée « Context Root » pour y placer la valeur « /petstore » :

Image non disponible

LLIX-D. Créer le fichier de déploiement standard

Avant de déployer l'application, il vous reste à générer le fichier de déploiement standard « application.xml ».

Pour cela, un clic droit sur le projet « Yaps-Server » propose le menu contextuel suivant dans lequel vous allez pouvoir ajouter le descripteur de déploiement standard (Standard Deployment Descriptor) :

Image non disponible

L'écran suivant apparaît précisant où résidera le fichier de déploiement :

Image non disponible

Cliquez sur « Finish » pour générer le fichier de déploiement.

Le fichier « application.xml » est généré et associé au projet :

Image non disponible

Si l'on consulte le fichier « application.xml », on constate que la section « web » du fichier met en relation l'URI du projet Web (« Yaps-Server-war.war ») avec le Context Root « /petstore » que vous avez défini précédemment.

 
Sélectionnez
...
<web>
<web-uri>Yaps-Server-war.war</web-uri>
<context-root>/petstore</context-root>
</web>
...

LLIX-E. 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 ») :

Image non disponible

Cliquez sur l'option « Clean and Build ».
La fenêtre « Output » affiche les traces de la compilation :

Image non disponible

Les messages intéressants sont les suivants :

 
Sélectionnez
...
Building jar: C:\Projects\YapsON\Yaps-Server\Yaps-Server-ejb\dist\Yaps-Server-ejb.jar
...
Building jar: C:\Projects\YapsON\Yaps-Server\Yaps-Server-war\dist\Yaps-Server-war.war
...
Building jar: C:\Projects\YapsON\Yaps-Server\dist\Yaps-Server.ear
...
BUILD SUCCESSFUL (total time: 7 seconds)

Ces traces indiquent que les modules ont été correctement compilés de même que l'archive de type EAR.

LLIX-F. 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 ») :

Image non disponible

Cliquez sur l'option « Deploy ».
Si nécessaire, NetBeans se charge de démarrer le serveur d'applications « PetStore ».
Si l'application Yaps-Server é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 :

 
Sélectionnez
...
deployment started : 0%
deployment finished : 100%
Deploying application in domain completed successfully
...
All operations completed successfully
post-run-deploy:
run-deploy:
BUILD SUCCESSFUL (total time: 10 seconds)

Le déploiement terminé, vous pouvez explorer le contenu de l'application Yaps-Server sur le serveur PetStore.
Rendez-vous sur l'onglet "Services" et sélectionnez le serveur "Petstore".
Le noeud « Applications -> Enterprise Applications -> Yaps-Server » affiche les ressources et services exposés par l'application :

Image non disponible

LLIX-G. Base de données

Le déploiement de l'application Yaps-Server a eu pour effet de supprimer et de créer les tables de la base de données « petstoreDB ».
Ces opérations sont réalisées par le biais d'annotations JPA apposées dans les différentes Entity.
Dans cette section, nous allons montrer comment - au travers de NetBeans - accéder à la structure et aux données de la base de données « petstoreDB ».

LLIX-G-1. Créer une connexion

La première étape consiste à créer une connexion vers la base de données.
Sélectionnez l'onglet « Services » et ensuite un clic droit sur « Databases ».
Le menu contextuel suivant apparaît offrant la possibilité de créer une nouvelle connexion :

Image non disponible

Cliquez sur « New Connection ».

L'écran suivant apparaît dans lequel vous allez identifier les propriétés de la base de données « petstoreDB » :

Image non disponible

Dans le formulaire, introduisez les informations suivantes :

Name:  Java DB (Network)
Host:  localhost
Port:  1527
Database:  petstoreDB
User Name:  dbuser
Password:  dbpwd

Propriétés de la source de données

Les informations de connexion proviennent des propriétés définies durant la création du Connection Pool (voir ici).

Cliquez sur le bouton « OK » pour créer la connexion.

Avant de fermer la fenêtre, NetBeans peut vous demander de préciser le schéma de la base de données :

Image non disponible

Veuillez préciser « DBUSER » et cliquez ensuite sur « OK ».

Le noeud « Databases » présente la nouvelle connexion

Image non disponible

Chaque connexion est préfixée par une icône qui précise un statut :

  • Une connexion DB est en coursImage non disponible
  • Pas de connexion DBImage non disponible

LLIX-G-2. Connexion à la DB

Un clic droit sur la connexion fait apparaître le menu contextuel par lequel vous pouvez vous connecter à la base de données :

Image non disponible

Cliquez sur « Connect » pour vous connecter à la base de données.

Le système vous demande d'introduire le mot de passe :

Image non disponible

En cochant l'option « Remember password », le mot de passe ne vous sera plus demandé.
Vous êtes maintenant connecté à la base de données :

Image non disponible

LLIX-G-3. Explorer la DB

Les noeuds de la connexion peuvent être ouverts pour explorer la structure de la base de données « petstoreDB » :

Image non disponible

Un clic droit sur une table fait apparaître le menu contextuel qui permet de visualiser le contenu de la table ou d'altérer sa structure :

Image non disponible

Si vous cliquez sur l'option « View Data », une fenêtre apparaît et vous donnez la possibilité d'exécuter des requêtes de type SQL et obtenir le résultat de la requête :

Image non disponible

Vous constaterez que les tables de la base de données sont vides.

Nous allons maintenant présenter les méthodes pour charger les données de test de livrées avec le projet Yaps original.

LLIX-G-4. Données de test

Dans le fichier « build.xml » du projet original Yaps, la tâche « db-insert-data » insère des données de test dans la base de données.

Ce processus d'insertion des données de test est exécuté à chaque déploiement de l'application.

Durant la phase de transfert (voir ici), les données de test ont été transférées à l'emplacement suivant :

 
Sélectionnez
{yapson_home}\Yaps-Server\data.sql

Nous allons montrer deux méthodes que l'on peut utiliser sous NetBeans pour charger ces données de test.

LLIX-G-4-a. Méthode 1 : Chargement manuel des données de test

Cette méthode décrit comment charger manuellement les données de test dans la base de données en utilisant les opérations offertes dans le service « Database ».

Un clic droit sur le noeud « Table » de la base de données « petstoreDB » présente le menu contextuel suivant :

Image non disponible

Sélectionnez l'option « Execute Command ».
Copiez le contenu du fichier « data.sql » pour le coller dans la fenêtre de commande :

Image non disponible

Exécutez les requêtes SQL en cliquant sur l'icône de la toolbar.
La fenêtre « Output » trace le résultat de chaque requête SQL.
Vous pouvez maintenant visualiser le contenu de chaque table en invoquant l'option « View Data » décrite plus haut.
Par exemple, nous obtenons le résultat suivant pour la table « CUSTOMER » :

Image non disponible

Exécuter une sélection de commandes SQL

Il vous est également loisible d'exécuter un ensemble de commande.
Dans la fenêtre de commande SQL, sélectionnez les commandes à exécuter.
Un clic droit fait apparaître le menu contextuel avec l'option « Run Selection » :

Image non disponible

On se rend vite compte que le chargement manuel est quelque peu contraignant, car il vous oblige à répéter les opérations de chargement après chaque déploiement de l'application.
Nous allons montrer une autre méthode qui automatise le processus de chargement des données de test.

LLIX-G-4-b. Méthode 2 : Chargement automatique des données de test

Cette seconde méthode est beaucoup plus élégante, car elle automatise le chargement des données de test conformément au projet original Yaps.

En inspectant les fichiers de projet Netbeans, vous aurez compris que NetBeans utilise Ant pour compiler et déployer les applications.

NetBeans offre la possibilité de personnaliser le processus de construction et de déploiement des applications en offrant au développeur la liberté de modifier le fichier « build.xml » du projet afin d'exploiter les targets Ant suivantes :

pre-init Called before initialization of project properties
post-init Called after initialization of project properties
pre-compile Called before javac compilation
post-compile Called after javac compilation
pre-dist Called before archive building
post-dist Called after archive building
post-clean Called after cleaning build products
pre-run-deploy Called before deploying
post-run-deploy Called after deploying

Nous allons enrichir le processus de construction de l'application Yaps-Server afin d'y insérer une tâche pour ajouter les données de test dans la base de données petstoreDB.

Nous allons montrer comment enrichir le fichier « build.xml » afin d'insérer les données de test après chaque déploiement de l'application (post-run-deploy).

Sélectionnez l'onglet « Files » et ouvrez le noeud du projet Yaps-Server :

Image non disponible

Vous constatez la présence du fichier « data.sql » qui a été transféré du projet original.
Vous allez créer le script Ant « yaps-data.xml » qui sera utilisé pour charger les données de test.

Fichier « yaps-data.xml »

L'archive de l'application YapsON est livrée avec le fichier « yaps-data.xml ».
Il n'est donc pas nécessaire de créer ce fichier. Vous êtes libres de le déplacer du répertoire principal vers le répertoire du projet « Yaps-Server » :

 
Sélectionnez
C:\> cd {yapson_home}
{yapson_home}> copy yaps-data.xml Yaps-Server

Sélectionnez le dossier « yaps-Server.

Un clic droit affiche le menu contextuel suivant dans lequel vous allez sélectionner l'option « New -> Other » :

Image non disponible

Pour créer un fichier de type Ant, vous allez choisir l'option « Other -> Ant Build Script» :

Image non disponible

Cliquez sur « Next » pour poursuivre.

Ensuite, entrez le nom du fichier qui sera dans notre cas « yaps-data.xml » :

Image non disponible

Cliquez sur « Finish » pour terminer le processus.

Le fichier « yaps-data.xml » s'ouvre maintenant dans l'éditeur de NetBeans pour vous permettre de le compléter :

Image non disponible

Nous fournissons ci-dessous le contenu à appliquer au fichier « yaps-data.xml » :

 
Sélectionnez
<?xml version="1.0"?>
<!-- This Ant script is used to load test data on the Yaps Pet Store Database -->
<project name="Yaps-Data" default="load-data" basedir=".">
<!-- Database properties -->
<property name="db-url" value="jdbc:derby://localhost:1527/petstoreDB" />
<property name="db-driver" value="org.apache.derby.jdbc.ClientDriver" />
<property name="db-userid" value="dbuser" />
<property name="db-password" value="dbpwd" />
<!-- Derby Library location -->
<property name="derby.home" value="C:/Program Files/glassfish-v2ur2/javaDB"/>
<property name="derby.lib" value="${derby.home}/lib"/>
<!-- Classpath -->
<path id="classpath">
<!-- Derby classes -->
<pathelement location="${derby.lib}/derbyclient.jar"/>
</path>
<!-- Ant task used to load data on the Yaps Pet Store Database -->
<target name="load-data">
<sql driver="${db-driver}"
url="${db-url}"
userid="${db-userid}"
password="${db-password}"
autocommit="yes"
onerror="continue"
caching="yes"
src="data.sql">
<classpath refid="classpath"/>
</sql>
</target>
</project>

Nous allons décrire le fichier Ant.

Le script Ant « Yaps-Data » commence par définir un ensemble de propriétés pour identifier :

  • Database properties : les propriétés de la base de données « petstoreDB ».
  • Derby Library location: le chemin vers les librairies de Derby.
  • Classpath : la librairie Derby nécessaire pour importer les données.

Ensuite, la cible « load-data » fournit la tâche SQL utilisée pour charger les données dans la base de données « petstoreDB » à partir du fichier « data.sql ».
Sauvez les modifications et vérifiez la structure XML du fichier.
Pour cela, un clic droit dans le fichier fait apparaître le menu contextuel offrant l'option « Check XML » :

Image non disponible

Maintenant, vous allez modifier le fichier « build.xml » du projet « Yaps-Server » pour invoquer le script Ant « yaps-data.xml » après la phase de déploiement du projet.

Toujours à partir de l'onglet « Files », ouvrez le fichier « build.xml » du projet « Yaps- Server » :

Image non disponible

L'objectif étant d'insérer les données de test après le déploiement du projet, vous allez ajouter la target Ant « post-run-deploy » dans le fichier « build.xml » :

 
Sélectionnez
...
<!-- After deploying the application, we populate the database with test data -->
<target name="post-run-deploy">
<echo>Load Data on the Yaps Pet Store Database ... </echo>

<ant antfile="yaps-data.xml" target="load-data"/>
</target>
</project>

La target « post-run-deploy » se charge d'invoquer la cible « load-data » du fichier « yaps-data.xml ».

Pour vérifier le bon déroulement du processus, l'instruction « echo » permet d'afficher une trace sur la console.

Vérifiez la structure du fichier en invoquant l'option « Check XML » comme décrite précédemment.

Sauvez vos modifications.

Si vous déployez le projet comme décrit plus haut (voir ici), vous verrez apparaître la trace suivante sur la console :

 
Sélectionnez
...
post-run-deploy:
Load Data on the Yaps Pet Store Database ...
load-data:
Executing resource: C:\Projects\YapsON\Yaps-Server\data.sql
91 of 91 SQL statements executed successfully
...

Ces informations indiquent que 91 requêtes SQL du fichier « data.sql » ont été exécutées durant la phase « post-run-deploy ».

Avec cette méthode, les données de tests seront automatiquement injectées dans la base de données à chaque déploiement du projet « Yaps-Server ».

LLIX-H. Tester le projet

Le test du projet est largement décrit dans le livre de référence.
On rappellera que l'application Web est accessible à l'adresse suivante :

http://localhost:8080/petstore

Image non disponible

N'oubliez pas de créer un compte utilisateur afin de pouvoir valider le comportement de l'application :

  • Ajout d'articles dans le panier.
  • Création et envoi d'un bon de commande.
  • Réception d'un email de confirmation.
  • Messages de trace produits sur le serveur et mentionnant la réception des messages du topic JMS.

L'analyse des traces du serveur Petstore vous permet également de suivre le cheminement des messages et de constater que les Web Services (DeliveryService et ValidationService) sont bien invoqués.

Configuration du serveur SMTP

La classe « EmailSenderBean » chargée d'envoyer les emails utilise des constantes pour identifier le serveur SMTP:

 
Sélectionnez
private static final String SMTP_HOST = "smtp.free.fr";
private static final String USER = "yaps.petstore";
private static final String PASSWORD = "yapspwd";

Il est nécessaire d'adapter les valeurs de ces constantes en fonction de votre environnement. Après la modification, n'oubliez de recompiler et de déployer l'application.

Bug JMS

En consultant les traces du serveur Petstore, on peut rencontrer le message d'erreur suivant:

 
Sélectionnez
DirectConsumer:Caught Exception delivering messagecom.sun.messaging.jmq.io.Packet
cannot be cast to com.sun.messaging.jms.ra.DirectPacket

Ce problème est identifié comme un bug connu par SUN:

http://bugs.sun.com/view_bug.do?bug_id=6650996

Le problème est lié à la manière dont le JMS Provider et l'Application Server sont liés.

Par défaut, la relation est de type « EMBEDDED ». Cela signifie que le serveur d'applications (GlassFish) et le JMS Provider (Sun Java System Message Queue software) fonctionnent sous la même JVM.

Pour contourner le problème, il est recommandé de changer le type de relation en « LOCAL ». Ce mode stipule que le JMS Provider est démarré dans sa propre JVM au moment où le serveur d'applications est lui-même démarré.

Pour modifier la configuration du service JMS, procédez comme suit :

  • Démarrer la console d'administration du serveur Petstore sur le site suivant : http://localhost:8282/
  • Dans la partie de gauche, sélectionnez la tâche « Configuration > Java Message Service » :
    Image non disponible
  • Changer le type de relation de « EMBEDDED » à « LOCAL » :
    Image non disponible
  • Sauver vos modifications.
  • Cette modification nécessite un redémarrage du serveur.
  • Redémarrez le serveur Petstore.

Les différents types de relation sont exposés dans la documentation de GlassFish (Sun Java System Application Server 9.1) disponible à l'adresse suivante :

http://docs.sun.com/app/docs/doc/819-3672/beaob?a=view

LLIX-I. Conclusion

Les sources du serveur de l'application « Yaps» 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 l'application Web, la logique métier et les Web Services communiquent correctement ensemble.


précédentsommairesuivant

Copyright © 2008,2009 Said Eloudrhiri Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.