Vous êtes sur la page 1sur 46

2007

Web Services
Création d’un annuaire UDDI
Tutorial réalisé par abitaf@gmail.com

adel
USTHB
16/03/2007
Tutorial Juddi

2
TABLE DES MATIÈRES

1. Introduction ………………………………………………………………………………………………… 4

2. Définitions …………………………………………………………………………………………………… 4

2.1. Web Services …………………………………………………………………………………… 4

2.2. UDDI ………………………………………………………………………………………………… 4

3. Outils nécessaires ………………………………………………………………………………………… 5-36

3.a. Java Development Kit ……………………………………………………………………… 5

3.b. XAMPP……………………………………………………………………………………………… 10

Configuration de MySQL ……………………………………………………………… 15

3.c. TOMCAT…………………………………………………………………………………………… 19

3.d. MySQL Connector/J ……………………………………………………………………… 20

3.e. Juddi ……………………………………………………………………………………………… 21

3.f. Axis ………………………………………………………………………………………………… 29

3.g. UDDI browser………………………………………………………………………………… 32

3.h. Eclipse WTP …………………………………………………………………………………… 36

4. résumé de l’installation ……………………………………………………………………………… 39

5. publication de web services ………………………………………………………………………… 40

5.1 methode 1 avec la console juddi ……………………………………………………… 40

5.2 methode 2 evec eclipse ……………………………………………………

3
1. Introduction :
J’ai essayé de résumer mon effort dans la création et la publication de service web pour
ceux que sa intéresse.
Cette méthode marche pour moi, L'obtention d'instructions sur la façon de procéder
n’était pas simple donc j’espère que ce document servira pour d’autre personne d’avancer
dan la bonne direction.

2. Définitions :
Ces définitions son extraite de l’encyclopédie en ligne wikipedia.

2.1 Web Services :


Un service Web est un ensemble de protocoles et de normes informatiques utilisés pour
échanger des données entre les applications.
Les logiciels écrits dans divers langages de programmation et sur diverses plateformes
peuvent employer des services Web pour échanger des données à travers des réseaux
informatiques comme Internet. Cette interopérabilité est due à l'utilisation de normes
ouvertes regroupées au sein du terme générique de SOA (Service Oriented Architecture
ou Architecture orientée services). L'OSI et le World Wide Web Consortium (W3C) sont
les comités de coordination responsables de l'architecture et de la standardisation des
services Web. Pour améliorer l'interopérabilité entre les réalisations de service Web,
l'organisation WS-I (Web Services Interoperability) a développé une série de profils pour
faire évoluer les futures normes impliquées.

2.2 UDDI :
Service Web UDDI, acronyme de Universal Description Discovery and Integration, est
une technologie d'annuaire basée sur XML et plus particulièrement destinée aux services
Web, notamment dans le cadre d'architectures de type SOA (Service Oriented
Architecture). Un annuaire UDDI permet de localiser sur le réseau le service Web
recherché. Il repose sur le protocole de transport SOAP.
Né en 1999 de l'initiative d'un certain nombre d'entreprises, dont Sun Microsystems,
Oracle, Microsoft, HP ou encore SAP, il permet de stocker à la fois des informations
techniques et formelles tel que l'adresse pour accéder au Services Web, mais également
des informations beaucoup plus contextuelles, tel le nom de la personne qui s'occupe de
leur gestion, la description sommaire de leurs fonctionnalités ou encore le nom et la
branche d'activité de l'entreprise dont ils dépendent.

4
3. Outils nécessaires :
Voici une liste des logiciels nécessaires pour la réalisation de ce tutorial certain son
obligatoire d’autre facultatif :

a) jdk-1_5_0_11-windows-i586-p.exe
b) xampp-win32-1.6.0a-installer.exe
c) xampp-tomcat-addon-5.5.20-2.2.3-installer.exe
d) mysql-connector-java-5.0.5.tar.gz
e) juddi-0.9rc4.zip
f) axis-bin-1_4.zip
g) ub-0.2-bin.zip
h) wtp-all-in-one-sdk-R-1.5.3-win32.zip

a) Java Development Kit :


(couramment abrégé en JDK) est l'environnement dans lequel le code Java est compilé
pour être transformé en bytecode afin que la JVM (machine virtuelle de Java) puisse
l'interpréter.
Telecharger et installer les programmes pour developper en Java
Les versions de Java pour les systemes Windows, Solaris et Linux sont disponibles
sur le site Internet de Sun Microsystems à http://java.sun.com.

5
Sun fournit chaque version de Java sous deux formes :
• L’une pour les développeurs : le JDK ( Java Development Kit) ou SDK
(Software Development Kit) comprenant la machine virtuelle Java pour
un système d’exploitation, la bibliothèque des classes Java et les commandes
pour développer en Java.
• L’autre pour les utilisateurs : le JRE ( Java Runtime Environment) comprenant
la machine virtuelle Java et la bibliothèque des classes

Installation sous Windows NT, 2000/XP :


1 Exécutez le fichier d’installation jdk-VERSION-OS.exe et installez le JDK
dans le dossier propose C:\program Files\java\jdkVERSION
2 Cliquez avec le bouton droit de la souris sur l’icône de votre poste de travail
et choisissez le menu Propriétés.
3 Choisissez l’onglet Avancé dans la boîte de dialogue des Propriétés.
4 Cliquez sur le bouton Variables d’environnement.

5 Ajoutez la variable d’environnement path avec la valeur :


%Path% ;C:\program Files\java\jdkVERSION\bin
Si la variable existe déjà, modifiez-la en ajoutant à la fin de sa valeur :
;C:\program Files\java\jdkVERSION\bin
6 Confirmez votre saisie et fermez la boîte de dialogue.

6
Télécharger, installer et utiliser la documentation
La documentation des API Java (Application Programming Interface)
décrit les fonctionnalités des classes de la bibliothèque Java. Elle se présente
sous forme de fichiers HTML dont l’organisation permet de retrouver rapidement
la description d’une classe et de ses méthodes grâce à de nombreux
liens hypertextes. Cette documentation indispensable peut être consultée en
ligne à http://java.sun.com/j2se/1.5.0/docs/api/ ou téléchargée pour la consulter hors
connexion.
Voici comment installer la documentation du J2SE, qui décrit les API Java
entre autres choses. Téléchargez la documentation qui correspond à la version
de votre JDK. Ce fichier de plus de 30Mo a un nom de la forme jdk-VERSION-doc.zip
représentant une suite de chiffres séparés par des
points (par exemple 1.5.0).
Décompressez le fichier avec l’outil de votre choix.

7
Commandes du JDK les plus utilisées :
Voici un aperçu des commandes du JDK qui sont le plus utilisées.
Ces commandes se lancent dans une fenêtre de commandes ou un
terminal Unix :

• javac : le compilateur Java vérifie la syntaxe du (des) fichier(s)


.java passé(s) en paramètres et génère un fichier .class pour
chacune des classes qu’ils contiennent.
• java : cette commande lance la machine virtuelle Java qui
charge la classe passée en paramètre puis appelle sa méthode
main .
• appletviewer : cette commande lit le fichier HTML passé en
paramètre puis affiche dans une fenêtre l’applet de chaque balise
<applet> de ce fichier.
• jar: cette commande crée et lit des archives au format ZIP.
• javadoc : cette commande génère la documentation au format
HTML d’un ensemble de classes à partir de leurs commentaires
au format javadoc. C’est avec cet outil que la documentation des
API Java est créée.

Chaque commande Java propose un ensemble d’options repérable


au tiret (-) qui les précède. La liste de ces options s’obtient en
tapant une commande Java seule dans une fenêtre de commandes
ou en cliquant sur le lien Tool Docs de la documentation du J2SE.
Par exemple, la version de la JVM est obtenue en tapant la
commande :
java -version
Bien sûr, ces commandes et le paramétrage de leurs options sont
intégrées dans les IDE Java disponibles sur le marché.

Tester l’installation : votre première application Java


Recopiez le programme suivant dans un fichier texte dénommé Bienvenue.java
Respectez la casse des caractères du fichier et son extension .java

class Bienvenue
{
public static void main(java.lang.String [] args)
{
javax.swing.JOptionPane.showMessageDialog(null,"Bienvenue");
}
}

Cette application affiche dans une boîte de dialogue le texte Bienvenue .


Compilation de l’application :
Pour compiler le fichier Bienvenue.java :
1 Ouvrez une fenêtre de commandes
2 Déplacez-vous avec la commande cd dans le dossier où se trouve le
fichier Bienvenue.java
3 Exécutez la commande suivante : javac Bienvenue.java

Si votre programme est correctement compilé, la commande javac n’affiche


aucun message et crée le fichier bienvenue.class dans le dossier du fichier
Bienvenue.java. Si le compilateur détecte une erreur, un texte décrivant
l’erreur apparaît à l’écran. Remontez toujours à la première erreur du texte
généré par javac, car les dernières erreurs sont souvent liées aux premières
erreurs de la liste.
8
Les cinq erreurs de compilation les plus fréquentes
1 Commande inconnue
‘javac’ n’est pas reconnu en tant que commande interne
Ou externe ,un programme executable ou un fichier de commande.
La modification que vous avez apportée au PATH est incorrecte, ce qui
empêche le système de retrouver la commande javac. Vérifiez le PATH et
modifiez-le comme indiqué précédemment.
2 Fichier absent :
Error : cannot read : Bienvenue.java
Vérifiez que le dossier courant contienne bien le fichier Bienvenue.java
Renommez le fichier exactement comme cela en cas de besoin, ou changez
de dossier courant pour aller dans le dossier où se trouve le fichier.
3 Argument inconnu
Javac : invalid argument :Bienvenue
Usage : javac <options> <source files>

N’oubliez pas l’extension .java des fichiers.
4 Syntaxe : symbole oublié
Bienvenue.java :5 : ‘ ;’ expected
(recopie de la ligne 5)
Il vous faut certainement vérifier que vous ayez bien écrit le caractère
attendu.
5 Symbole introuvable
Bienvenue.java :3 : cannot resolve symbol
Symbol : class string
Location : package lang
(recopie de la ligne 3)
Vérifiez l’orthographe du symbole cité, ici string qui doit s’écrire String

Exécution de l’application
Exécutez ce programme avec la commande suivante :
Java Bienvenue
Une fois que la fenêtre affichant Bienvenue est à l’écran, cliquez sur Ok. Si
vous utilisez une version antérieure à Java 5.0, il vous faudra arrêter la JVM
en tapant simultanément sur les touches Ctrl et C de votre clavier.

Les trois erreurs d’exécution les plus fréquentes


Si une erreur survient lors de l’exécution du programme, une exception est
déclenchée empêchant généralement la JVM de poursuivre son exécution.
1 Définition de classe non trouvée (1)
Exception in thread « main » java.lang. NoClassDefFoundError : Bienvenue /class
Vous avez dû taper la commande java Bienvenue.class (la commande java
demande en paramètre une classe pas un fichier).
2 Définition de classe non trouvée (2)
Exception in thread « main » java.lang. NoClassDefFoundError : Bienvenue
Vérifiez que le dossier courant contienne bien un fichier Bienvenue.class Si
le problème persiste, assurez-vous que la variable d’environnement CLASSPATH
soit égale à rien.
3 Méthode main non trouvée
Exception in thread « main » java.lang.NoSuchMethodError : main
Vérifiez la déclaration de la méthode main puis recompilez le programme.

9
b) XAMPP :
Plusieurs personnes savent par expérience qu'il n'est pas facile d'installer un
serveur web Apache et que ça se complique si vous voulez y ajouter MySQL,
PHP et Perl.
XAMPP est un kit d'installation d'Apache qui contient MySQL, PHP et Perl. XAMPP
est réellement très facile à installer et à utiliser vous n'avez qu'à le télécharger,
le décompresser et le démarrer.

Installation et désinstallation faciles


Afin d'installer XAMPP vous n'avez qu'à le télécharger et à le décompresser,
c'est tout. Aucun changement au registre Windows n'est effectué et il n'est
aucunement nécessaire de modifier un fichier de configuration. Ça ne pourrait
être plus facile!

Pour vérifier que XAMPP fonctionne correctement, des programmes sont fournis
à titre d'exemple : un petit logiciel de collection de DC (écrit en PHP et qui
utilise MySQL) et un petit logiciel de livre de visiteurs (écrit en Perl), ainsi que
plusieurs autres utilitaires.

Telechargement :
http://www.apachefriends.org/fr/xampp-windows.html

Vous pouvez télécharger XAMPP pour Windows sous trois formes:


Installateur
Facile et sûr: XAMPP avec un installateur agréable
Archive zip
Pour les puristes: XAMPP dans une archive zip ordinaire
Fichier auto-extractible
Économique: XAMPP dans une archive auto-extractible 7-zip très petite

10
Méthode A : avec installateur

Cette méthode est la voie la plus facile pour installer XAMPP.

L'assistant d'installation de XAMPP win32Quand l'installation est complétée, vous trouverez XAMPP sous
Démarrer / Programmes / XAMPP. Grâce au panneau de contrôle XAMPP, vous pouvez démarrer/arrêter
chacun des serveurs et installer/désinstaller les services.

Le panneau de contrôle XAMPP pour arrêter/démarrer Apache, MySQL, FileZilla et Mercury ou installer ces
serveurs en tant que services.

11
Méthode B : sans installateur
Sans installateur, téléchargez et décomprimez l'archive zip ou 7-zip dans le
répertoire de votre choix.

Ici, nous décomprimons XAMPP dans D:\Program Files pour créer le répertoire
"D:\Program Files\xampp". Ensuite, ouvrez le répertoire principal de xampp et
exécutez "setup_xampp.bat". Maintenant tous les chemins présents dans les
fichiers de configuration sont à jour. Finalement, démarrez les différents serveurs
grâce aux scripts de démarrage ou d'arrêt (.bat) ou utilisez l'interface graphique
"xampp-control.exe".

12
Allez au répertoire XAMPP et ...

exécutez "setup_xampp.bat" pour configurer XAMPP.

Note : Si vous utilisez la version installateur, vous n'avez pas besoin d'exécuter
"setup_xampp.bat".

»Je veux démarrer XAMPP sans configurer!«


Si vous décomprimez XAMPP dans un répertoire racine tel que c:\xampp ou
d:\xampp, vous pouvez essayer de démarrer XAMPP directement; donc, sans
exécuter "setup_xampp.bat". Apache, MySQL et le serveur de courrier Mercury
vont démarrer correctement! Seul le serveur FTP FileZilla ne fonctionnera pas
puisqu'il nécessite des chemins absolus. Avec cette méthode, évitez d'avoir un
double répertoire tel que c:\xampp\xampp.

13
1. Démarrage, arrêt et test de XAMPP
Le centre de contrôle universel est le panneau de contrôle XAMPP de
www.nat32.com (non présent dans la version allégée).
.\xampp\xampp-control.exe
Merci pour cet excellent outil!

D'autres scripts:
Démarrage Apache & MySQL : .\xampp\xampp_start.exe
Arrêt Apache & MySQL : .\xampp\xampp_stop.exe
Démarrage Apache : .\xampp\apache_start.bat
Arrêt Apache : .\xampp\apache_stop.bat
Démarrage MySQL : .\xampp\mysql_start.bat
Arrêt MySQL : .\xampp\mysql_stop.bat
Démarrage Mercury Mailserver : .\xampp\mercury_start.bat
Arrêt Mercury : utilisez l'interface graphique
Configuration FileZilla : .\xampp\filezilla_setup.bat
Démarrage FileZilla : .\xampp\filezilla_start.bat
Arrêt FileZilla : .\xampp\filezilla_stop.bat

Pour tester : après le démarrage d'Apache, visitez http://localhost ou http://127.0.0.1 et examinez tous
les exemples et outils XAMPP.

14
2. Installation d'un des serveurs en tant que service
Vous pouvez installer en tant que service un serveur particulier sous ces
plateformes: NT4, 2000 et XP. Les scripts suivants sont disponibles:
Installation du service Apache : .\xampp\apache\apache_installservice.bat
Désinstallation du service Apache : .\xampp\apache\apache_uninstallservice.bat
Installation du service MySQL : .\xampp\mysql\mysql_installservice.bat
Désinstallation du service MySQL : .\xampp\mysql\mysql_uninstallservice.bat
Installation/désinstallation du service FileZilla : .\xampp\filezilla_setup.bat
Mercury: aucun service disponible !

3. Installation d'ajouts
De nombreux ajouts sont disponibles en vue du développement avec le kit
principal. Pour le moment, les ajouts win32 officiels sont les suivants:

 Perl, mod_perl et une sélection de modules Perl importants


 Tomcat (SUN J2SE SDK doit être installé au préalable)
 Cocoon pour Tomcat (nécessite l'installation de l'ajout Tomcat)
 Python

La règle à suivre: si vous utilisez l'installateur pour XAMPP, les ajouts à


sélectionner doivent aussi être en format installateur; de même pour les versions
ZIP et 7-Zip. Pour installer un ajout en format ZIP, décomprimez l'archive
directement dans le répertoire XAMPP principal. Puis exécutez "setup_xampp.bat".
C'est tout. Par contre, si vous utilisez l'installateur pour un ajout, tout se fait
automatiquement, il n'y a rien à faire de plus.
Note : n'importe qui peut préparer un nouvel ajout XAMPP pour ses besoins. Par exemple, vous
trouverez d'autres ajouts pour XAMPP sur http://sourceforge.net/projects/xamppaddon.

Configuration de Mysql :
Il se peut qu’il y’est des probleme si on ne modifie pas le fichier
..\xampp\mysql\bin\my.cnf
Ouvrire ce fichier et chercher la ligne ou il y’a :

character-set-server = ….
collation-server = ….

Remplacer les point par :

character-set-server = utf8
collation-server = utf8_general_ci

15
La console de sécurité XAMPP
Tel que mentionné auparavant, XAMPP n'est pas destiné à un usage en production mais seulement
pour des développeurs dans un environnement de développement. XAMPP est configuré de façon à
être le plus ouvert possible pour permettre au développeur de faire ce qu'il/elle veut. Ceci est
intéressant dans un contexte de développement mais en production ceci pourrait s'avérer fatal.

Voici la liste des éléments de sécurité manquants dans XAMPP :

 L'administrateur MySQL (root) n'a pas de mot de passe.


 Le serveur MySQL est accessible depuis le réseau.
 phpMyadmin est accessible depuis le réseau.
 Les exemples sont disponibles depuis le réseau.
 L'utilisateur de Mercury et FileZilla est connu.

Donc, tout le monde devrait sécuriser XAMPP avant de publier quoi que ce soit en ligne. Parfois, un
coupe-feu ou un routeur externe sont suffisants pour la sécurité. Vous devriez d'abord utiliser la
console de sécurité web XAMPP.

Pour corriger les plus importantes faiblesses de sécurité, visitez l'adresse suivante (disponible
seulement depuis localhost):

Avant la version 1.4.15 :


http://127.0.0.1/xampp/xamppsecurity.php

Depuis la version 1.4.15 :


http://127.0.0.1/security

Le mot de passe root de MySQL et phpMyAdmin, ainsi qu'une protection sur le répertoire XAMPP
peuvent être établis ici. Pour Mercury et FileZilla, n'oubliez pas de modifier les réglages (utilisateur
et mot de passe). Ou encore, si vous n'avez pas besoin de ces serveurs, ne les démarrez pas.
C'est une autre forme de sécurité.

16
Question de base :
1. En quoi consiste la version Allégée de XAMPP

La version allégée de XAMPP est un sous-ensemble de XAMPP utile pour un aperçu de PHP et MySQL.
Contrairement au kit complet, certains des serveurs ou outils tels que Mercury Mail ou FileZilla FTP ne sont
pas présents. Note : il n'existe pas d'installateur, d'ajouts ou de mise à niveau pour la version allégée.

2. Où devrais-je placer mes documents web?

Le répertoire suggéré est htdocs (.\xampp\htdocs). Si vous y placez un fichier test.html, vous pouvez
l'afficher en visitant http://localhost/test.html avec votre propre Apache. Il en va de même avec tous les
fichiers php ou cgi. Il est possible de créer un sous-répertoire dans htdocs. Par exemple le répertoire
.\xampp\htdocs\new contenant test.html. Puis vous visitez http://localhost/new/test.html.

Autres types de fichiers :

 CGI, exécutable partout, extensions permises : .cgi => kit de base


 PHP, exécutable partout, extensions permises : .php .php4 .php3 .phtml => kit de base
 MOD Perl, exécutable sous .\xampp\htdocs\modperl, extensions permises : .pl => ajout Perl
 ASP Perl, exécutable sous .\xampp\htdocs\modperlasp, extensions permises : .asp => ajout Perl
 JSP Java, exécutable sous .\xampp\tomcat\webapps\java (u.a), extensions permises : .jsp => ajout Tomcat
 Servlets Java, exécutable sous .\xampp\tomcat\webapps\java (u.a), extensions permises : .html (u.a) =>
ajout Tomcat
 MOD Python, exécutable sous .\xampp\htdocs\python, extensions permises: .py => ajout Python
 Spyce Python, exécutable sous .\xampp\htdocs\python, extensions permises: .spy => ajout Python

3. Puis-je déplacer XAMPP?

Oui, mais seulement la version ZIP. Après le déplacement, exécutez "setup-xampp" pour adapter tous les
fichiers de configuration. N'essayez pas ceci avec la version installateur, faites plutôt une copie de XAMPP et
placez-la dans un autre répertoire. Puis exécutez "setup-xampp" et testez.

4. Comment puis-je créer un répertoire à démarrage automatique?

Si vous visitez un répertoire tel que http://localhost/xampp, le serveur Apache retourne un document de
façon automatique, grâce à la présence du fichier index.php. Ceci se produit en raison de la directive
"DirectoryIndex" dans httpd.conf. C'est là que vous définissez les noms et l'ordre d'exécution des fichiers de
départ. Par défaut dans XAMPP, la directive "DirectoryIndex" contient ceci:

index.php index.php4 index.php3 index.cgi index.pl index.html index.htm index.html.var index.phtml

6. Où puis-je modifier la configuration?

Vous faites vos ajustements dans XAMPP via les fichiers de configuration classiques en mode texte.

Les fichiers suivants existent :

 Configuration de base d'Apache : .\xampp\apache\conf\httpd.conf


 Apache SSL: .\xampp\apache\conf\ssl.conf
 Apache Perl (ajout): .\xampp\apache\conf\perl.conf
 Apache Tomcat (ajout): .\xampp\apache\conf\java.conf
 Apache Python (ajout): .\xampp\apache\conf\python.conf
 PHP: .\xampp\apache\conf\php.ini (en exécution sous Apache)
 MySQL: .\xampp\mysql\bin\my.cnf
 phpMyAdmin: .\xampp\phpMyAdmin\config.inc.php
 FileZilla FTP: .\xampp\FileZillaFTP\FileZilla Server.xml
 Configuration de base de Mercury Mail : .\xampp\MercuryMail\MERCURY.INI
 Sendmail: .\xampp\sendmail\sendmail.ini

17
7. Est-ce que je dois être "en ligne" pour utiliser XAMPP?
Non, vous pouvez travailler "hors ligne" avec XAMPP.

8. À quoi servent les différents répertoires?

Directory Content
\xampp\anonymous Exemple pour FTP anonyme
\xampp\apache Serveur Apache
\xampp\cgi-bin Scripts d'exécution cgi
\xampp\FileZillaFTP FileZilla FTP server directory
\xampp\htdocs Documents http
\xampp\install Pour configuration de XAMPP (ne pas effacer!)
\xampp\licenses (même)
\xampp\MercuryMail Serveur Mercury Mail (SMTP POP3 IMAP)
\xampp\mysql Serveur MySQL
\xampp\perl Perl
\xampp\php PHP (4+5)
\xampp\phpmyadmin phpMyAdmin
\xampp\security Configuration de sécurité
\xampp\tmp Temporaire
\xampp\webalizer Statistiques web Webalize
\xampp\webdav Exemple pour "WebDAV Authoring"

Où puis-trouver plus d'information (FAQ, etc)


Veuillez visiter notre FAQ XAMPP pour Windows:
http://www.apachefriends.org/en/faq-xampp-windows.html
Ou utilisez notre forum:
http://www.apachefriends.org/f/

XAMPP et les services


Pour les utilisateurs NT/2000, dans tous les kits vous trouverez les fichiers
d'installation et de désinstallation pour transformer tous les serveurs en services
dans les répertoires respectifs.

 apache_installservice.bat => Installe Apache en tant que service


 apache_uninstallservice.bat => Désinstalle le service Apache
 mysql_installservice.bat => Installe MySQL en tant que service
 mysql_uninstallservice.bat => Désintalle le service MySQL

Après tout changement, redémarrez votre système. Note! pour désinstaller le


service mysql vous devez d'abord l'avoir stoppé!

18
c) TOMCAT :
Apache Tomcat est un conteneur de servlet J2EE. Issu du projet Jakarta, Tomcat est
désormais un projet principal de la fondation Apache. Tomcat implémente les
spécifications des servlets et des JSP de Sun Microsystems. Il inclut des outils pour la
configuration et la gestion, mais peut également être configuré en éditant des fichiers de
configuration XML. Comme Tomcat inclut un serveur HTTP interne, il est aussi
considéré comme un serveur HTTP.

Environnement
Tomcat est un serveur Web qui supporte servlet et JSP. C'est le compilateur Jasper qui
compile les pages JSP pour en faire des servlet. Le moteur de servlet Tomcat est
souvent employé en combinaison avec un serveur Web Apache ou d'autres serveurs
Web.Tomcat a été écrit en langage Java, il peut donc s'exécuter via la JVM (machine
virtuelle java) sur n'importe quel système d'exploitation.

Arborescence de répertoires
L'installation par défaut de Tomcat comprend les répertoires suivants :

bin : Scripts et exécutables pour différentes tâches : démarrage (startup), arrêt, etc. ;
common : Classes communes que Catalina et les applications Web utilisent ;
conf : Fichiers de configuration au format XML et les DTD que ces fichiers XML
utilisent ;
logs : Journaux des applications Web et de Catalina ;
server : Classes utilisées seulement par Catalina ;
shared : Classes partagées par toutes les applications Web ;
webapps : Répertoire contenant les applications web ;
work : Fichiers et répertoires temporaires.

Installation :
La version de tomcat utilisé est l’addon xampp-tomcat-addon-5.5.20-2.2.3
pour xampp donc l’installation est comme décrite précédemment.

Utilisation :
Tomcat va servir de conteneur pour exécuter les web services et spécialement les
services juddi et axis

19
d) MySQL Connector/J:

Telechargement :
http://www.mysql.com/downloads/api-jdbc.html

Installation :
MySQL Connector/J est le driver JDBC de MySQL ( c'est lui qui sera chargé de convertir
les appels JDBC en ordre compréhensible par MySQL ). Pour l'installer, décompressez
l'archive mysql-connector-java-5.0.5.tar.gz
récupérer le fichier mysql-connector-java-5.0.5-bin.jar
Attention, le nom du fichier dépendra de la version que vous avez téléchargé ) et placez
le dans le répertoire :
... \xampp\tomcat\common\lib

20
e) Juddi :

Java Universal Description, Discovery and Integration


Une implémentation basée sur la plate-forme Java de l'UDDI. Elle fournit
également un kit de développement pour créer des accès à des bases de
registres d'UDDI.

Liens :
• http://ws.apache.org/juddi/

Telechargement :
http://apache.downlod.in/ws/juddi/0_9RC4/
Telecharger le fichier juddi-0.9rc4.zip

Installation :
Décompresser juddi-0.9rc4.zip

Example :
D:\juddi-0.9rc4\

Docs contient la documentation sur juddi


SQL contient les fichier necessaire pour la creation de la
Base de donne mysql
Webapp contient l’aplication web juddi qui s’executera sur tomcat

21
1) Deploiment de l’application web :

A l’interieur du repertoire webapp il y’a un repertoire qui se nomme juddi


Copier ce repertoire dans le dossier :

..\xampp\tomcat\webapps

Editer le fichier juddi.propreties present dans le dossier :


..\xampp\tomcat\webapps\juddi\WEB-INF
et rajouter a la fin du fichier :

# required JDBC DataSource properties


juddi.dataSource = java:comp/env/jdbc/juddiDB

# required JDBC Driver properties


juddi.useConnectionPool = true
juddi.jdbcDriver = com.mysql.jdbc.Driver
juddi.jdbcURL = jdbc:mysql://localhost/juddi
juddi.jdbcUser = juddi
juddi.jdbcPassword = juddi

22
2) Création de la base de données :

Demarer le serveur mysql


Copier les 2 fichier present dans le repertoire :
D:\juddi-0.9rc4\sql\mysql
create_database.sql
insert_publishers.sql

dans le repertoire :
..\xampp\mysql\bin

Ouvrire commande ms-dos et placer vous dans ce dossier

23
Taper la commande suivante :
mysql -u root -p < create_database.sql
Il vous demande le mot de passe appuyer sur entrer
Si vous n'avers pas changer le mot de passe

Editer le fichier insert_publishers.sql :

USE juddi;

-- *** SAMPLE PUBLISHER ***


-- INSERT INTO PUBLISHER
(PUBLISHER_ID,PUBLISHER_NAME,EMAIL_ADDRESS,IS_ENABLED,IS_ADMIN)
-- VALUES ('jdoe','John Doe','john.doe@apache.org','true','true');

Enlever les –- de insert et de values et rajouter un publisher si vous le vouler


Le fichier devient :

USE juddi;

-- *** SAMPLE PUBLISHER ***


INSERT INTO PUBLISHER
(PUBLISHER_ID,PUBLISHER_NAME,EMAIL_ADDRESS,IS_ENABLED,IS_ADMIN)
VALUES ('jdoe','John Doe','john.doe@apache.org','true','true');
INSERT INTO PUBLISHER
(PUBLISHER_ID,PUBLISHER_NAME,EMAIL_ADDRESS,IS_ENABLED,IS_ADMIN)
VALUES ('adel','abdelatif','abitaf@gmail.com','true','true');

Sauvegarder et refaite la meme operation que precedement :


mysql -u root -p < insert_publishers.sql

La base de données est maintenant créer et la table publisher contient


Deux utilisateur Jdoe et adel.

24
3) Creation utilisateur juddi :
Demarer le serveur mysql
Ouvrire commande ms-dos et placer vous dans le dossier
..\xampp\mysql\bin

Taper la commande mysql -u root –p


Pour vous connecter a la BDD en tant que root.
Vous este maintenant dans la console de mysql tapez:

GRANT ALL ON juddi.* TO juddi@"%" IDENTIFIED BY "juddi";


GRANT ALL ON juddi.* TO juddi@"localhost" IDENTIFIED BY "juddi";

Pour vous déconnecter de la BDD taper quit

Vous pouvez vous reconnecter en tant que l’utilisateur juddi


mysql -u juddi -p
essayer les commande suivante:

use juddi
puis
select * from publisher;

25
4) Configuration de tomcat pour qu’il puisse se conncter
A la BDD juddi :

Placer vous dans le repertoire


..\xampp\tomcat\conf

éditer le fichier server.xml

rajouter le code (avant de voir </Host> </Engine></Service></Server>) :

<Context path="/juddi" docBase="juddi" debug="5" reloadable="true" crossContext="true">


<Resource name="jdbc/juddiDB" auth="Container" type="javax.sql.DataSource"
username="juddi" password="juddi" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/juddi?autoReconnect=true"
validationQuery="select count(*) from PUBLISHER" />
</Context>

Le fichier server.xml deviendra comme suit :

.
.
.
<Context path="/juddi" docBase="juddi" debug="5" reloadable="true" crossContext="true">
<Resource name="jdbc/juddiDB" auth="Container" type="javax.sql.DataSource"
username="juddi" password="juddi" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/juddi?autoReconnect=true"
validationQuery="select count(*) from PUBLISHER" />
</Context>

</Host>
</Engine>
</Service>
</Server>

26
5) Test de l’installation :
Placer vous dans le repertoire de xampp
Lancer le serveur tomcat tomcat_start.bat

Lancer le serveur mysql mysql_start.bat

Ouvrer votre navigateur web préférer et taper l’adresse suivante


http://localhost:8080/juddi/happyjuddi.jsp
si tout va bien vous verré la page suivante :

27
Le plus important c’ est le
+ SELECT COUNT(*) FROM PUBLISHER = 2

28
f) Axis :

Axis est un projet de Apache Software Foundation. C'est un package Java qui fournit :

un environnement pouvant soit fonctionner comme un serveur SOAP indépendant soit


comme un plug-in de moteurs de servlet (en particulier Tomcat),
Une API pour développer des services web SOAP RPC ou à base de messages SOAP
le support de différentes couches de transport : HTTP, FTP...
la sérialisation/désérialisation automatique d'objets Java dans des messages SOAP
des outils pour créer automatiquement les WSDL correspondant à des classes Java ou
inversement pour créer les classes Java sur la base d'un WSDL (classe proxy en quelque
sorte, qui fait le lien entre l'application Java cliente et le service distant).
des outils pour déployer, tester et monitorer des web-services.

Page web :
http://ws.apache.org/axis/

telechargement :
http://www.apache.org/dyn/closer.cgi/ws/axis/1_4

installation :
decompresser l’archive axis-bin-1_4.zip

example D:\ axis-1_4\

Copier ce qu’il y’a a l’intérieur du dossier lib dans


..\xampp\tomcat\common\lib

Copier ce qu’il y’a a l’intérieur du dossier webapps dans


..\xampp\tomcat\webapps

29
Tester l’installation :
Démarrer le serveur tomcat et essayer les pages suivante
http://localhost:8080/axis/
http://localhost:8080/axis/happyaxis.jsp

Tester SOAP Endpoint :


http://localhost:8080/axis/services/Version?method=getVersion

vous dever voire :

30
Tester JWS Endpoint :
http://localhost:8080/axis/EchoHeaders.jws?method=list

vous dever voire :

Tester le wsdl d’un web service :


Assurer vous de voire le WSDL de l’example Stock Quote Service
http://localhost:8080/axis/StockQuoteService.jws?wsdl

31
g) UDDI browser :

Uddi browser est un projet open source qui autorise la manipulation,


Des registre uddi avec une interface conviviale.
Il est ecrit en java avec l’api swing et supporte la version 2.0 de la norme
UDDI.
Uddi browser supporte l’api complète de la manipulation des registres uddi
Interrogation, création, mise a jour,suppression de toute les entité uddi
Il intègre plusieurs option qui rende la vie facile a l’administrateur et a
l’utilisateur : interrogation persistante, utilitaire d’aide a a la maintenance.

Site : http://uddibrowser.org/

32
Installation :
Télécharger le fichier ub-0.2-bin.zip depuis le site et décompresser l’archive
D:\ub-0.2-bin

Aller dans le dossier bin et executer le fichier ub.bat

Choisire le menu edit puis clicker sur uddi regiestries une fenetre s’ouvre

Cliker sur le bouton Add

33
Une fenetre apparait :

Remplire par les information suivante :


Name : juddi
Inquiry URL : http://localhost:8080/juddi/inquiry
Publish URL : http://localhost:8080/juddi/publish
Username : juddi
Passward : juddi

Clicker sur le bouton OK voila nous avons ajouter le register uddi que nous avons cree
En locale .vous pouver rajouter d’autre registre en ligne si vous vouler.

Choisire juddi puis clicker sur connect :


Remarque : les serveur tomcat et mysql doivent etre demarer

34
Maintenant aller dans le menu view puis find more :
Executer le 3 option :

Find all business


Find all services
Find all tModels

Si tout va bien vous devers avoir :

35
h) Eclipse WTP :

Qu'est-ce que Eclipse ?


Eclipse est à l'origine un IDE Java. Developpé par IBM à partir de ses ancêtres Visual Age
et Visual Age For Java. Il a depuis été rendu open-source et son évolution est maintenant
gérée par la fondation Eclipse.
Sa conception est completement modulaire : basée sur un moteur de chargement de
plugins et de differents plugins, ce qui fait d'Eclipse une boite à outils facilement
amélioriable ou modifiable. La license d'Eclipse permet de fournir des plugins open
sources comme des plugins closed-source, des plugins gratuits ou payants.
C'est pourquoi il est maintenant bien plus qu'un IDE java, et gêre un grand nombre de
langages de programmation.

Présentation d'Eclipse Web Tools Platform (WTP)


Le développement d'applications J2EE est l'utilisation principale de Java. Il est donc
logique que la fondation Eclipse ait répondu aux besoins particuliers des développeurs
d'applications J2EE en complétant son environnement de développement Java. Les
développements de ces outils J2EE se font dans le cadre du projet WTP (Web Tools
Platform). Après des débuts laborieux (cf encart), le projet WTP a atteint la maturité
depuis la version 1.5 (livrée en juin 2006). Cette version 1.5 cible J2EE 1.4. La prochaine
version majeure, WTP 2.0 (juin 2007), ciblera Java EE 5.

WTP est organisé en deux projets :

Web Standard Tools (WST) : les applications J2EE utilisent des technologies qui ne
sont pas propres au monde Java. Le but du projet WST est de fournir les outils pour
manipuler ces technologies : XML, HTML, XHTML, XSD, DTD, XSLT, SVG,
JavaScript/ECMAScript, CSS, SOAP, WSDL, UDDI, WSIL, ...

J2EE Standard Tools (JST) : Eclipse répond au besoin de base des développeurs
Java. Dans le cadre des développements J2EE des outils améliorant la productivité sont
nécessaires. Le projet JST fourni des outils supportant le modèle applicatif de J2EE
(Servlet, JSP et EJB), prenant en compte le modèle de déploiement (formats WAR et
EAR) et permettant de déboguer les applications J2EE de façon intégrée à Eclipse.

Téléchargement : http://download.eclipse.org/webtools/downloads/
Telecharger le fichier wtp-all-in-one-sdk-R-1.5.3-win32.zip
puis décompresser l’archive dans le disque c: on aura le dossier
c:\eclipse\
executer le programme eclipse.exe clicker sur ok

36
il se presente l’interface suivante :

37
Outillage WebServices

Pour le développement de WebServices les trois fonctionnalités les plus visibles sont un
éditeur de fichier WSDL (ressemblant à l'éditeur de fichier XMLSchema), des assistants
pour la création de WebServices (notamment génération à partir d'une classe Java) et un
outil permettant d'invoquer un WebServices (Le 'WebServices Explorer').

Voila nous avons finie l’installation de tout les composant nous


Allons passer maintenant a la publication de web services.


Mais avant voici un petit résumé de l’installation :

38
4) Résumé de l’installation :
1) Installer le JDK
2) Installer XAMPP
3) Installer l’addon Tomcat

4) Modifier fichier ..\xampp\mysql\bin\my.cnf


character-set-server = utf8
collation-server = utf8_general_ci

5) Ajouter au fichier ..\xampp\tomcat\conf\server.xml


<Context path="/juddi" docBase="juddi" debug="5" reloadable="true" crossContext="true">
<Resource name="jdbc/juddiDB" auth="Container" type="javax.sql.DataSource"
username="juddi" password="juddi" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/juddi?autoReconnect=true"
validationQuery="select count(*) from PUBLISHER" />
</Context>

6) Décompresser juddi-0.9rc4.zip dans d :


Copier D:\juddi-0.9rc4\webapp\juddi\
vers ..\xampp\tomcat\webapps

7) Editer le fichier :
..\xampp\tomcat\webapps\juddi\WEB-INF\ juddi.propreties
et rajouter a la fin du fichier :

# required JDBC DataSource properties


juddi.dataSource = java:comp/env/jdbc/juddiDB
# required JDBC Driver properties
juddi.useConnectionPool = true
juddi.jdbcDriver = com.mysql.jdbc.Driver
juddi.jdbcURL = jdbc:mysql://localhost/juddi
juddi.jdbcUser = juddi
juddi.jdbcPassword = juddi

8) Creer la base de donnée juddi avecles deux fichier :


D:\juddi-0.9rc4\sql\mysql\
create_database.sql
insert_publishers.sql
copier les dans le repertoire : ..\xampp\mysql\bin
puis executer lecommande suivante dans une fenetre dos :
mysql -u root -p < create_database.sql
mysql -u root -p < insert_publishers.sql

9) Creer l’utilisateur juddi :


mysql -u root -p
GRANT ALL ON juddi.* TO juddi@"%" IDENTIFIED BY "juddi";
GRANT ALL ON juddi.* TO juddi@"localhost" IDENTIFIED BY "juddi";

10) Installer axis et eclipse

39
5) publication de web services :

Nous allons voire dans ce chapitre comment publier un web services pour cela nous utiliserons
Deux méthodes :

Methode 1 : publication a l’aide de la console juddi


La console juddi est un outil puissant de test
lancer les serveur tomcat et mysql et tapper l’adresse suivante dans votre
navigateur :
http://localhost:8080/juddi/console/

40
Creation d’un web services axis :
Créer un fichier dans le dossier ..\xampp\tomcat\webapps\axis
et nommer le sommer.jws
Remplire ce fichier par le code suivant :

public class sommer {


public int getsomme(int a, int b) {
return a+b;
}
}

Et sauvegarder.

Essayer les lien suivant :


pour voire le wsdl générer par axis du web service sommer
http://localhost:8080/axis/sommer.jws
http://localhost:8080/axis/sommer.jws?wsdl

pour invoquer la méthode getsomme de sommer avec a=2 et b=3


http://localhost:8080/axis/sommer.jws?method=getsomme&a=2&b=3

Vous remarquer le resultat de la somme :

<getsommeReturn xsi:type="xsd:int">5</getsommeReturn>

41
Publication du web service sommer dans l’annuaire juddi :

http://localhost:8080/juddi/console/
Nous allons passer par 4 etapes :

UDDI Publish API


 get_authToken
 save_business
 save_tModel
 save_service

etape 1 : clicker sur le lien get_authToken


remplire userID par un des utilsateurs de la table publisher
dans mon cas g choisi adel clicker ensuite sur le bouton submit

Vous aurer une reponse en xml qui contien l’information dont nous avon besoin
authToken:088B5750-D657-11DB-9750-D495FF188B61 sauvegarder dans txt

42
etape 2 : clicker sur le lien save_business
remplire la ou il y’a des etoile par les info suivante :
authInfo celui obtenu chez vous dans atape 1 et que vous avez copier dans un fichier texte
moi g remplit comme ceci :

authInfo authToken:088B5750-D657-11DB-9750-D495FF188B61
name cbi
description grossiste
personName hassen ali
phone 021531224
email cbi@cbi.dz

clicker sur submit

Nous aurons besoin dans la réponse du businesskey copier la dans le fichier txt
businessKey="831C8780-D659-11DB-8780-A03AF047EE37"
43
étape 3 : clicker sur le lien save_tModel

remplire par les information suivante :


authInfo authToken:088B5750-D657-11DB-9750-D495FF188B61
name http://localhost:8080/axis/StockQuoteService.jws?wsdl
overviewURL http://localhost:8080/axis/StockQuoteService.jws?wsdl

Category Bag
------------
tModelKey UUID:C1ACF26D-9672-4404-9D70-39B756E62AB4
keyName uddi-org:types
keyValue wsdlSpec

cliker sur submit :

Nous obtenons dans la reponse le tModelKey gardez le dans un txt


tModelKey="uuid:82B06D50-D65B-11DB-AD50-B3DFEE851858"
44
étape 4 : clicker sur le lien save_service
remplire par les information suivante :

authInfo authToken:088B5750-D657-11DB-9750-D495FF188B61
businessKey 831C8780-D659-11DB-8780-A03AF047EE37
name Sommer
accessPoint http://localhost:8080/axis/sommer.jws
tModelKey uuid:82B06D50-D65B-11DB-AD50-B3DFEE851858
overviewURL http://localhost:8080/axis/sommer.jws?wsdl

clicker sur submit :

Et voila le web service sommer est dans l’annuaire Juddi 


45
Faite une recherche avec uddi browser pour verifier :

46