Académique Documents
Professionnel Documents
Culture Documents
WS Axis
WS Axis
Ce tutoriel est destin aux dbutants J2EE, il explique comment utiliser le framework Axis sous Apache Tomcat pour crer, dployer et consommer un web service en java.
Dploiement et Appel aux web services Java avec Axis par Mohamed KARAMI
I - Remerciements II - Lancement et configuration d'Axis II-A - Configuration de Tomcat II-B - Dmarrage de Tomcat II-C - Dmarrage d'Axis III - Mthode de dploiement 1 III-A - Cration du web service III-B - Dploiement du web service III-C - Test du web service IV - Mthode de dploiement 2 IV-A - Compilation de la classe du web service IV-B - Dfinition du descripteur de dploiement IV-C - Dploiement du web service IV-D - Excution du web service par son alias V - Consommer le web service en Java V-A - Cration du fichier de description du web service "wsdl" V-B - Utilisation du gnrateur " WSDL2Java " V-C - Dfinition du client Java VI - Dsactivation du web service
-2Copyright - karami. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de domages et intrts.
http://karamimed.developpez.com/j2ee/tutoriels/axis/
Dploiement et Appel aux web services Java avec Axis par Mohamed KARAMI
Axis 1.4 Apache Tomcat 5.5.17 Eclipse 2.1 Le cours au format HTML : Par FTP ---- Par HTTP Le cours au format PDF : Par FTP ---- Par HTTP La source du web service : Par FTP ---- Par HTTP La source du client java : Par FTP ---- Par HTTP Librairies d'activation d'Axis : Par FTP ---- Par HTTP
I - Remerciements
Merci Neo41 pour sa lecture et ses corrections, RideKick pour sa relecture. Merci Ricky81 pour ses conseils, et un grand merci galement Nono40, ralisateur de l'diteur xml.
-3Copyright - karami. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de domages et intrts.
http://karamimed.developpez.com/j2ee/tutoriels/axis/
Dploiement et Appel aux web services Java avec Axis par Mohamed KARAMI
-4Copyright - karami. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de domages et intrts.
http://karamimed.developpez.com/j2ee/tutoriels/axis/
Dploiement et Appel aux web services Java avec Axis par Mohamed KARAMI
-5Copyright - karami. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de domages et intrts.
http://karamimed.developpez.com/j2ee/tutoriels/axis/
Dploiement et Appel aux web services Java avec Axis par Mohamed KARAMI
-6Copyright - karami. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de domages et intrts.
http://karamimed.developpez.com/j2ee/tutoriels/axis/
Dploiement et Appel aux web services Java avec Axis par Mohamed KARAMI
-7Copyright - karami. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de domages et intrts.
http://karamimed.developpez.com/j2ee/tutoriels/axis/
Dploiement et Appel aux web services Java avec Axis par Mohamed KARAMI
Utilisez un diteur de texte simple, Kate sous Unix ou Bloc-notes sous Windows. Attention, vous devez sauvegardez votre classe sous le fichier portant le mme nom de la classe et suffix par " jws " ! Ici, le fichier de sauvegarde sera donc : "sommer.jws".
-8Copyright - karami. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de domages et intrts.
http://karamimed.developpez.com/j2ee/tutoriels/axis/
Dploiement et Appel aux web services Java avec Axis par Mohamed KARAMI
Si vous cliquez sur ce dernier lien, vous verrez la dfinition " WSDL " (gnre automatiquement par " Axis ") de votre service web.
-9Copyright - karami. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de domages et intrts.
http://karamimed.developpez.com/j2ee/tutoriels/axis/
Dploiement et Appel aux web services Java avec Axis par Mohamed KARAMI
- 10 Copyright - karami. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de domages et intrts.
http://karamimed.developpez.com/j2ee/tutoriels/axis/
Dploiement et Appel aux web services Java avec Axis par Mohamed KARAMI
IV - Mthode de dploiement 2
Dans l'exercice prcdent, nous avons mis en oeuvre un mode de dploiement entirement pris en charge par " Axis ". Ce mode automatique de dploiement prsente les contraintes suivantes : Ncessit de disposer des sources des classes dont on veut dfinir le ou les services. En effet, le mode de dploiement automatique d'Axis travaille sur la source des classes Java, Impossibilit de dcrire des particularits de dploiement (classes publiques et prives). Ce sont pour ces raisons, que nous devons parfois raliser un dploiement explicite. Cela implique la dfinition d'un fichier particulier, appel descripteur de dploiement du service web. Ce fichier porte l'extension " wsdd " pour "Web Service Deployment Descriptor".
- 11 Copyright - karami. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de domages et intrts.
http://karamimed.developpez.com/j2ee/tutoriels/axis/
Dploiement et Appel aux web services Java avec Axis par Mohamed KARAMI
Si les librairies Axis ne sont pas spcifies dans le classpath, vous devez le faire comme suit dans un fichier "deploy.bat" de prfrence: Le classpath
set OLD_CLASSPATH=%CLASSPATH% set CLASSPATH=%CLASSPATH%;%CATALINA_HOME%\common\lib\activation.jar set CLASSPATH=%CLASSPATH%;%CATALINA_HOME%\common\lib\mail.jar set CLASSPATH=%CLASSPATH%;%AXIS_HOME% set CLASSPATH=%CLASSPATH%;%AXIS_HOME%\lib\axis.jar set CLASSPATH=%CLASSPATH%;%AXIS_HOME%\lib\jaxrpc.jar set CLASSPATH=%CLASSPATH%;%AXIS_HOME%\lib\wsdl4j.jar set CLASSPATH=%CLASSPATH%;%AXIS_HOME%\lib\commons-discovery.jar set CLASSPATH=%CLASSPATH%;%AXIS_HOME%\lib\commons-logging.jar set CLASSPATH=%CLASSPATH%;%AXIS_HOME%\lib\saaj.jar set CLASSPATH=%CLASSPATH%;%AXIS_HOME%\lib\log4j-1.2.4.jar set CLASSPATH=%CLASSPATH%;%CATALINA_HOME%\common\lib\xerces.jar set CLASSPATH=%CLASSPATH%;%CATALINA_HOME%\common\lib\servlet-api.jar set CLASSPATH=%CLASSPATH%;%CATALINA_HOME%\common\lib\naming-factory.jar set CLASSPATH="%CLASSPATH%" java - CLASSPATH="%CLASSPATH%" org.apache.axis.client.AdminClient deploy.wsdd set CLASSPATH=%OLD_CLASSPATH%
Parmi les librairies Axis inclues dans le classpath, il faut faire attention aux versions de quelques unes, donc il vaux mieux vrifier manuellement la correspondance des noms des fichiers existants dans le dossier "Axis\lib" et leurs noms dans le classpath dfinit ci-dessus. Si vous n'arrivez pas lancer correctement la commande l'aide du classpath, vous pouvez dcompressez ces librairies dans le dossier "AXIS_HOME\WEB-INF", a ne sera pas assez propre comme solution mais c'est efficace, et vous aurez seulement lancer la commande : "java org.apache.axis.client.AdminClient deploy.wsdd" L'arborescense du dossier Axis (avec l'utilisation du classpath) devra tre comme illustr dans la figure suivante :
- 12 Copyright - karami. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de domages et intrts.
http://karamimed.developpez.com/j2ee/tutoriels/axis/
Dploiement et Appel aux web services Java avec Axis par Mohamed KARAMI
Nous avons, lors de l'tape prcdente, demand au serveur " Axis " d'tre en mesure de traiter toutes les requtes " SOAP " correspondant notre service " sommer ". Cela signifie donc qu' la rception d'une requte " HTTP-SOAP ", le serveur pourra appliquer la mthode spcifie dans la requte une instance de la classe correspondant notre service (en lui passant, le cas chant des valeurs). Vous tes dsormais en mesure d'accder votre service l'URL suivante : http://localhost:8080/axis/services/sommer. Le nom " sommer " correspond au nom du service que nous avons indiqu dans le descripteur de dploiement. Vous pouvez alors constater que votre service a bien t dploy sur " Axis " en ayant en retour la page " html " suivante :
- 13 Copyright - karami. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de domages et intrts.
http://karamimed.developpez.com/j2ee/tutoriels/axis/
Dploiement et Appel aux web services Java avec Axis par Mohamed KARAMI
- 14 Copyright - karami. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de domages et intrts.
http://karamimed.developpez.com/j2ee/tutoriels/axis/
Dploiement et Appel aux web services Java avec Axis par Mohamed KARAMI
Dploiement et Appel aux web services Java avec Axis par Mohamed KARAMI
Avant de dfinir le client Java, je commence par clarifier quelques ambiguts qui peuvent vous passer par la tte: A quoi il sert le Stub gnr? Ce fichier est le seul point d'entre pour le web service, il contient toute l'information dont on a besoin pour invoquer le web service :noms des mthodes, types des paramtres et les types de retour, et c'est qui permet l'auteur du web service de protger son code Quels sont les fichiers aux quels j'ai besoin pour consommer le web service? NON, c'est seulement le serveur dployant le web service qui doit contenir les librairies Axis Quels sont les fichiers aux quels j'ai besoin pour consommer le web service? Nous aurons seulement besoin des fichiers gnrs (Stub) par la commande wsdl2java, il faut juste importer ces fichiers dans l'application et utiliser les interfaces prsentes dans ce Stub. On dfinit maintenant le client Java qui met en oeuvre les classes gnres lors de l'tape prcdente. Pour cela, votre client ressemblera ceci : Client Java
import import import public // // // // // // // // java.rmi.RemoteException; javax.xml.rpc.ServiceException; _1._0._0._127.axis.sommer_jws.*; class SommerClient { public static void main(String[] args) { Cration du service depuis le endpoint SommerService correspond au nom du service dans le fichier "wsdl" c'est la balise : wsdl:service name="sommerService" SommerService service = new SommerServiceLocator(); try { Utilisation du service pour obtenir un stub qui implemente le SDI (Service Definition Type ; i.e. PortType). Pour le typage, c'est la balise : wsdl:portType name="sommer" Pour le getsommer(), le sommer correspond la balise : wsdl:port binding="impl:sommerSoapBinding" name="sommer" Sommer port = service.getsommer(); int s; try { Mise en oeuvre du service par application directe des mthodes s = port.getsomme(2, 3); System.out.println("2+3 = " + s); } catch (RemoteException e1) { e1.printStackTrace(); } } catch (ServiceException e) { e.printStackTrace(); } }
//
Sous Eclipse vous aurez comme ceci (j'ai utilis "http://127.0.0.1" au lieu de "http://localhost", c'est pourquoi j'ai le chemin gnr "_1._0._0.127":
- 16 Copyright - karami. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de domages et intrts.
http://karamimed.developpez.com/j2ee/tutoriels/axis/
Dploiement et Appel aux web services Java avec Axis par Mohamed KARAMI
Pour connatre les noms des classes et interfaces utiliser, vous devez examiner le contenu du dossier contenant les classes et interfaces gnres ainsi que le fichier " wsdl " ayant permis cette gnration.
- 17 Copyright - karami. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de domages et intrts.
http://karamimed.developpez.com/j2ee/tutoriels/axis/
Dploiement et Appel aux web services Java avec Axis par Mohamed KARAMI
Ensuite, la ligne de commande est simplement : "java org.apache.axis.client.AdminClient undeploy.wsdd". Forum Java Web Services http://dico.developpez.com http://ws.apache.org/axis
- 18 Copyright - karami. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de domages et intrts.
http://karamimed.developpez.com/j2ee/tutoriels/axis/