|
|||||||||||||||||||||||||||||||||||||
|
SOAP Côté Client 3. SOAP::Lite pour Perl Cette section vous montre comment écrire un client SOAP en utilisant SOAP::Lite pour Perl. Les instructions données ici sont valables pour les systèmes Win32 et Unix mais peuvent être adaptées à toute plate-forme applicable. Introduction Bien sûr, vous pouvez incorporer le code perl que vous trouvez ici dans vos pages web CGI mais il n'est pas dans notre intention de fournir des exemples de ce genre parce que le code en relation avec SOAP que vous incorporerez est, pour l'essentiel, invariable. Nous verrons donc l'essentiel au travers d'un client simplifié avec l'interface utilisateur la plus dépouillée possible. Comme c'est le cas lorsqu'on écrit des clients pour n'importe quel service SOAP, assurez vous à l'avance que vous êtes familier du service et des signatures de ses méthodes. Nous allons construire trois clients, un pour chaque méthode du service. Installer Perl et les modules Perl requis [ pour Win32 ] Le moyen le plus simple, et de loin, est de partir de rien (c-à-d sans installation antérieure de Perl) et d'installer la dernière version de ActivePerl (5.6.1 ou plus) à partir de ActiveState.com. Pour le faire, allez simplement sur leur domaine de téléchargement, choisissez le package Windows/MSI et sauvez le sur votre machine. Vous allez alors avoir un fichier Microsoft Installer (msi) nommé ActivePerl-5.6.1.628-MSWin32-x86-multi-thread.msi (le numéro de version peut changer). Si vous ne pouvez partir de rien parce que ActivePerl est déjà installé, et que la version est antérieure à 5.6.1, ou parce qu'une autre installation Perl existe, vous pouvez essayer l'une des méthodes suivantes:
Lancez le programme d'installation en double-cliquant sur le fichier msi téléchargé. Suivez les instructions pour installer ActivePerl sur votre machine. Si vous acceptez toutes les options par défaut, alors tout sera installé sous C:/Perl (d'autres répertoires de destination sont acceptables mais notez que les chemins mentionnés ci-après se basent sur le répertoire par défaut). Heureusement, cette installation inclut tous les modules Perl nécessaires pour écrire des clients Perl qui exploitent SOAP::Lite for Perl. Pour vérifier que vous avez bien tous les modules requis, ouvrez une fenêtre de commande et exécutez le Perl Package Manager (PPM) avec la commande suivante (notez qu'il faut être connecté à internet pour que cela fonctionne). > ppmVous devriez voir (les numéros de version peuvent changer): PPM interactive shell (2.1.5) - type 'help' for available commands PPM>Si ce n'est pas le cas, vous devez vérifiez la Documentation ActivePerl que vous avez téléchargée avec ActivePerl et allez dans Active Perl FAQ / Using PPM. Une fois que PPM fonctionne, tapez la commande suivante pour voir la liste des packages installés: PPM> queryVous devriez obtenir une liste qui ressemble à celle qui suit (les numéros de version peuvent changer). Les packages écrits en gras sont ceux que vous devez avoir pour que SOAP::Lite fonctionne. S'ils sont absents de la liste, vous devez les chercher et les installer - ce qui peut être fait en utilisant PPM (tapez juste 'search' suivi du nom du package (pour s'assurer qu'il est disponible), ensuite 'install' suivi du nom du package à télécharger et installez le- voyez la documentation ActivePerl (Active Perl FAQ / Using PPM / How do I use PPM?) pour plus de détails.
Archive-Tar [0.072 ] module for manipulation of tar archives.
Compress-Zlib [1.08 ] Interface to zlib compression library
Digest-MD5 [2.11 ] Perl interface to the MD5 Algorithm
File-CounterFile [0.12 ] Persistent counter class
Font-AFM [1.18 ] Interface to Adobe Font Metrics files
HTML-Parser [3.19 ] SGML parser class
HTML-Tagset [3.03 ] Data tables useful in parsing HTML
HTML-Tree [3.11 ] HTML syntax tree builder
MIME-Base64 [2.11 ] Encoding and decoding of base64 strings
PPM [2.1.5 ] Perl Package Manager: locate, install, upgrade
software packages.
SOAP-Lite [0.46 ] Library for Simple Object Access Protocol (SOAP)
clients and servers in Perl
URI [1.11 ] Uniform Resource Identifiers (absolute and relative)
XML-Parser [2.27 ] A Perl module for parsing XML documents
libnet [1.07.03] Collection of Network protocol modules
libwin32 [0.17.2 ] A collection of extensions that aims to provide
comprehensive access to the Windows API.
libwww-perl [5.51 ] Library for WWW access in Perl
L'installation Win32 est donc terminée. Si vous ne voulez pas installer Perl et les modules Perl nécessaires sur un système Unix, vous pouvez sauter les paragraphes suivants et aller directement dans Comprendre le Code Client . Installer Perl et les Modules Perl requis[ pour Unix ] Une fois que perl est installé, vous aurez aussi besoin d'installer les packages suivants. Les versions montrées ici ne sont pas strictement exigées bien que ce soient les versions que nous avons testées et confirmées, c'est pourquoi nous vous recommandons d'utiliser ces versions ou des plus récentes. Si vous n'avez aucune expérience en matière d'installation des Modules Perl, alors lisez SVP les notes d'installation ci-dessous avant de commencer.
Notes d'installation : Installer les modules perl demande parfois un peu de ruse - voici quelques trucs pour vous aider à éviter ou au moins à surmonter certains obstacles. Internet abonde de FAQs sur les nombreux risques non traités ici.
Comprendre le Code Client
Ecrire les Clients
Notez que les scripts perl présentés ici assume que le Service de Citations tourne sur votre machine (sur localhost:8080). Si ce n'est pas le cas, vous pouvez exécuter ces clients par rapport à notre serveur SOAP de démonstration. Pour cela, remplacez simplement localhost:8080 par services.xmethods.net dans le script ci-dessus. Pour plus d'information sur notre serveur de démonstration, référez vous à la Section de Démo.
Exécuter les Clients > perl getAllQuotations.pl > perl submitQuotation.pl > perl getAllQuotations.pl > perl getQuotationsByAuthor.plLe premier appel devrait résulter en une liste de citations (au moins deux entrées), le second ne présente pas de résultat mais sa réussite est mise en évidence par l'appel suivant à getAllQuotations qui doit vous montrer la même liste plus la citation de John F. Kennedy (a moins qu'elle ne fût déjà dans la liste). Le dernier appel devrait vous donner uniquement ces citations d'Oscar Wilde. Conclusion C'est tout pour les clients utilisant SOAP::Lite for Perl. Nous allons ensuite regarder les clients écrits avec le Toolkit de Microsoft SOAP. [ Nicholas Quaine ] Copyright © 2001-2007 Nicholas Quaine. Tout droit reservé. |
||||||||||||||||||||||||||||||||||||