Université sidi Mohamed Ben abdellah

publicité
Université sidi Mohamed Ben Abdellah
Faculté des sciences techniques Fès
Département d’informatique
A-U: 2012-2013
Série 2 de TD/TP : WEB SERVICES
Master SIR
On souhaite créer une application distribuée dont la couche service permet à un client distant
de consulter les informations concernant un catalogue de produits en utilisant la technologie
de Web Services.
Les services qui seront mis à disposition du client sont les suivants :
 Consulter un produit sachant son code ;
 Consulter tous les produits
 Consulter les produits dont le nom contient un mot clé.
 Consulter le prix moyenne de tous les produits.
Dans cette application, on suppose que la couche métier est composée :
 D’une classe sérialisable Produit, contient 9 methodes getIdProduit, setIdProduit,
getNomProduit, setNomProduit, getPrix, setPrix, getPhoto, setPhoto
Produit(Long idProduit,String nomProduit, double prix, String photo)
d’une classe MetierCatalogueImpl qui permet de créer une liste de produits au moment de
l’instanciation (constructeur) et qui offre des méthodes pour consulter tous les produits,
consulter les produits dont le nom contient un mot clé (produitsParMotCle) et consulter un
produit sachant son code (getProduit) .
 d’une classe TestMetier pour tester les méthodes de la classe MetierCatalogueImpl.
La liste contient 4 produits :
Produit
IdProduit
nom
1
2
3
4
Ordinateur HP
Imprimante HP
Ordinateur IBM
Imprimante Epson
1L
2L
3L
4L
Travail demandé :
1. Créer un projet java pour le web service
2. Mettre en place et Tester la couche métier
3. Créer la classe implémentant le web service.
4. Créer le serveur
5. Démarrer le serveur en déployant le projet.
6. Tester le web service avec un client léger.
7. Créer un projet java pour le client
8. Mettre en place le WSDL dans le projet du client
9. Générer les stubs pour le client.
10. Créer et Tester le client java
11. Tester le web service avec un analyseur SOAPUI.
1
Prix
moyenne
6400
2300
5600
6400
photo
Ord1.jpg
Imp1.jpg
Ord2.jpg
Imp2.jpg
Code source de la couche métier :
Classe Produit.java
Package metier;
Import java.io.Serializable;
Public class Produit implements Serializable
{
Private Long idProduit;
Private String nomProduit;
Private double prix;
Private String photo;
Public Produit(Long idProduit,String nomProduit, double prix, String photo)
{
this.idProduit=idProduit;
this.nomProduit= nomProduit;
this.prix= prix;
this.photo= photo;
}
Public Long getIdProduit()
{
Return idProduit;
}
Public void setIdProduit(Long idProduit)
{
this.idProduit= idProduit;
}
Public String getNomProduit()
{
Return nomProduit;
}
Public void setNomProduit(String nomProduit)
{
this.nomProduit= nomProduit;
}
Public double getPrix()
{
Return prix;
}
Public void setPrix(double prix)
{
this.prix= prix;
}
Public String getPhoto()
{
Return photo;
}
Public void setPhoto(String photo)
{
this.photo= photo;
}
2
Classe MetierCatalogueImpl.java
Package metier;
Import java.util.ArrayList;
Import java.util.List;
Public class MetierCatalogueImpl
{
Private List<Produit> produits= new ArrayList<Produit>();
publicMetierCatalogueImpl()
{ produits.add(new Produit(1L,"Ordinateur HP",6400,"ord1.jpg"));
produits.add(new Produit(2L,"Imprimante HP",2300,"imp1.jpg"));
produits.add(new Produit(3L,"Ordinateur IBM",5600,"ord2.jpg"));
produits.add(new Produit(4L,"Imprimante Epson",6400,"imp2.jpg"));
}
Public List<Produit> listeProduits()
{
Return (produits);
}
Public List<Produit> produitsParMotCle(String mc)
{List<Produit> prods=new ArrayList<Produit>();
For (Produit p:produits)
{
if(p.getNomProduit().indexOf(mc)!=-1)
{prods.add(p);}
}
Return (prods);
}
Public Produit getProduit(Long idP)
{ for(Produit p:produits)
{ if (p.getIdProduit().equals(idP))
Return p;}
return(null);
}
}
Classe TestMetier.java
Package metier;
Import java.util.List;
Public class TestMetier
{
Public static void main(String[] args)
{
MetierCatalogueImpl metier = new MetierCatalogueImpl();
Produit prod=metier.getProduit(2L);
System.out.println("Consulter lr produit dont ID=2");
if(prod!=null)
System.out.println(prod.getNomProduit());
System.out.println("Afficher les produits dont le nom contint HP");
List<Produit> prods=metier.produitsParMotCle("HP");
For (Produit p:prods)
System.out.println(p.getNomProduit());}}
3
Téléchargement